えくすとらんのブログ

読み違い...

今朝ブログを書いたとおり

洗う食器の順番を出力するプログラムを作ろうと思っているのだが

ブログを書いた後実際に食器を洗ってみると意外な落とし穴が

存在していることに気がついた

山になっている所からまず大きな物を避ける...もしくは洗う

ここはいいんじゃないかとおもっている

あとは大きさ順に大きな方から洗っていけば作業領域の確保を優先しつつ

スピーディーな食器洗いができるであろうと思っていたのだが

洗う前の台所の様子は

シンクの外の作業台にまな板、その上に包丁、ピーラーという

状態が高確率で存在している

これはもちろん包丁で物を切ったあとそのままで放置してある状態だが

このシンク横の作業台は非常に重要なポジションにあり

私は節水対策のため水を出さないで一度食器を洗剤のついたスポンジだけで洗い

それをSWAPさせておくのにつかう領域にしている

そしてさらに問題をややこしくしているのが包丁、あるいは刃物類である

仮に大きさ順に並べて洗うのであればまな板の方を包丁より先に洗うことになってしまう

こうなってしまうと上のものを払い落としておいてまな板を洗わなければならない

刃物類でこういったことしようとすれば当然リスクが跳ね上がる

よって順番は

蛇口の確保(大きなものの移動)・まな板の上の刃物・まな板・あともろもろ

になるのではないかとおもっている


プログラムは

ひとまず書き出している全ての食器に優先順位をつけてみたい

その後で

class Syokki:
    def __init__(self,name,val,num):
        self.name = name
        self.val = val
        self.num = num

インスタンス生成

として各食器の名前とパラメータ(順位)を設定しインプットナンバーを変換

さらにパラメータで序列を変えて出力...

なんてことを考えているが上手く行くかどうかはまだわからない

まぁ食器洗いのプロでもなくもちろんプログラムは趣味でかじった程度

なので内容はかなり適当なことを気分で書いている

まぁ期日はないのでゆっくり作ることにしよう














構想

とりあえずまたまた簡単な何かをプログラミングしてみたいなという考えで

身近にある環境で目につくものを考えてみた

毎日山になってしまう台所の食器....

もう何から手をつけてよいかわからず途方に暮れてしまう

それならば目につく物を入力 → 片付ける順番にして出力

簡単に書いてしまうとこんな感じのものが作ってみたいなぁ

なんておもってみたりしている

ここでの問題は物理の法則にしたがって?いつでも食器が混沌な方向へと

積み重ねられていくことである

そしてそれはシンクを占領しあわよくば蛇口までの距離を縮め作業領域を

奪おうと画策しているかのようにさえ思える

ということで...

大きなものを最初に洗うことで作業領域を確保ということをベースに

考えてゆきたいが例外として両手鍋(大)のようなシンクに

置かれた時点ですでに

蛇口まで到達。作業領域を奪っているものをとりあえずどこか別のところへ

避けるグループにいれてみたい

一応目につく食器類をメモしてみた

両手鍋
電気プレート鍋
フライパン(大)
フライパン(中)
フライパン(小)
フライパン蓋
鍋蓋
片手鍋(大)
片手鍋(中)
片手鍋(小)
どんぶり(中)
どんぶり(小)
ボール
ざる
炊飯器釜
炊飯器蓋
皿(大)
皿(中)
皿(小)
包丁
まな板
お箸.スプーン.フォーク
しゃもじ
ピーラー
シンクたらい

ん〜とりあえずこんな感じでどうだろう?

今日はここまで...

できるかなぁ









もう少し... アルバイト時間計算機 for gui

自分で使う場合は割と15,6日分の計算をまとめてすることがおおいので

何度も回せるようにループを書いてみました

最初に何度も計算するのかをきくようにしました

NOを入力すると一度の計算でおわります

yesを入力すると無限ループですがキャンセルボタンで抜けることができるようです

基本的にシンプルなものがすきなのでこれ以上機能は増やしたくはないですが

なにかが突然おりてきたらつついてみたくなるかもしれません

#!/usr/bin/python
# -*- coding: utf-8 -*-
from easygui import*
def albaito():
    gui1 = enterbox("開始時刻(24H)半角数字(*:**)といれてください:")
    kaishi = gui1.split(":")
    kaishi1 = (int(kaishi[0])*60) + int(kaishi[1])
    gui2 = enterbox("終了時刻(24H)半角数字(*:**)といれてください:")
    syuryou = gui2.split(":")
    syuryou1 = (int(syuryou[0])*60) + int(syuryou[1])
    keikajikan_fun = syuryou1 - kaishi1
    keikajikan = divmod(keikajikan_fun,60)
    jikan = keikajikan[0]
    fun = keikajikan[1]  
    msgbox("経過時間は"+ str(jikan)+ "時間"+ str(fun)+ "分です(^^)")
cnt = ynbox("何度も入力しますか?","アルバイト時間計算(^^;)")
albaito()

while cnt == True:
    albaito()

コードの外部リンクだと環境によって見えないときがあるようですので
テキストベタ貼りにしていますm(_ _)m


改造だ 簡易アルバイト計算機 for gui

なんとなくeasyguiを使ってgui化してみたくなった

#!/usr/bin/python
# -*- coding: utf-8 -*-
from easygui import*
gui1 = enterbox("開始時刻をいれてください(例)8:13:")
kaishi = gui1.split(":")
kaishi1 = (int(kaishi[0])*60) + int(kaishi[1])
gui2 = enterbox("終了時刻をいれてください(例) 9:15:")
syuryou = gui2.split(":")
syuryou1 = (int(syuryou[0])*60) + int(syuryou[1])
keikajikan_fun = syuryou1 - kaishi1
keikajikan = divmod(keikajikan_fun,60)
jikan = keikajikan[0]
fun = keikajikan[1]
msgbox("経過時間は"+ str(jikan)+ "時間"+ str(fun)+ "分です(^^)")

これでウインドウが出てきました























ちょっとしたgui化にはeasyguiが使いやすいなぁ^^

そろそろいかなくては....


昨日のプログラムでベンチマーク

昨日作ったプログラムを使ってどれぐらいなら自分のパソコンで

計算ができるのかチャレンジしてみた

結果からいうと11個の数字から11桁の重複しない並べ方で6Gのメモリを食い尽くし

swapが発生しましたがなんとか計算を終えました

12桁になると.....swap(10Gとってます)も食い尽くしたのかターミナルが

落ちてしまいました

まあこれがなにを意味しているのかはさっぱりわかりませんが

自分のパソコンで昨日のプログラムを計算する場合は11桁以下

が良いということがわかりました

OS: Arch Linux x86_64
                             Hostname: localhost
                       Kernel Release: 4.8.14-1-zen
                      Uptime: 1:46
                    WM: Compiz
                   DE: LXDE
                   Packages: 1234
              RAM: 1247 MB / 5971 MB
                  Processor Type: Intel(R) Core(TM)2 Quad  CPU   Q8200  @ 2.33GHz
              $EDITOR: vi
          Root: 72G / 283G (25%) (ext4)
         
 
archey3でのインフォメーションがこんな感じ

もうすっかり型遅れの域ですがまだまだ頑張って動いています

cpuはcore2duoのe8400のほうが良いかもしれませんがどうなんでしょう?

用途によっては此方のほうがいいのかなとも....

SSDほしいなぁ

coreiほしいなぁ^^

何をしようかな...2(作ってみた簡易並べ方計算機)

今日は少し時間が出来たので

プログラムを書いてみました

まぁ今の生活には順列だの組み合わせだのといった

計算を必要とするようなことは全く起こらない平穏な?

暮らしではございますが

その昔....少しだけパチンコや競馬,あるいはドロップ率を

計算したくなるようなゲームをかじってみたことが

ありました

そこで....

#!/usr/bin/python
# -*- coding: utf-8 -*-
import itertools
print("*個(人)の中から*個(人)並べると何通りか調べる?:1")
print("*個(人)の中から*個(人)選ぶと何通りか調べる?:2")
a = int(input("どうする?:"))
if a == 1:
    print("順列が選ばれました。答えは重複を許さない並べ方の数です")
    b = input("何個ありますか?")
    c = input("何個並べますか?:")
    d = list(range(1,int(b)+1))
    per = list(itertools.permutations(d,int(c)));
    print("並べ方は"+ str(len(per))+ "通りあります^^")
elif a == 2:
    print("組み合わせが選ばれました。答えは重複を許す並べ方の数です")
    b1 = input("何個ありますか?")
    c1 = input("何個選びますか?:")
    d1 = list(range(1,int(b1)+1))
    per1 = list(itertools.combinations(d1,int(c1)));
    print("並べ方は"+ str(len(per1))+ "通りあります^^")
input()

こんな感じのものを書いてみました

まぁ 馬券の確率をだしてみるとか...

◯人の中で◯人の重複しないパーティーが何通りできるか(ゴルフの幹事さんとか結構なやむようですねぇ)

などにも使えるかもしれません

初心者素人が作ったプログラムです しかも順列と組み合わせもしっかり理解できていません
(違ってたらすみません)のでご利用の際は精査の上お使いください
例のごとくPYTHON3環境メモ帳コピペで実行権限を与えてターミナルで実行していただければ動くかもしれません

追記
このプログラムで72個の数字の中で6個の数字を選んだときの順列を
選んだ時に(ツレがロトシックスは72個の(これは嘘)数字の中で6個数字を選ぶらしいよといったので....)
実行してみるとCPUが天井に張り付き火を吹きそうになりましたので
無茶な数字を入力するのはきけんです^^;






作ってみた(簡易アルバイト時間計算機)

難しいモジュールなどは使いこなせないので....

単純に始業時間や終了時間を分に直して引いて60で割って時間と

分に直してみました

...ですので高度な計算はもちろん出来ませんしツッコミどころ満載です...

自分用ということで^^;



#!/usr/bin/python
# -*- coding: utf-8 -*-

kaishi = input("開始時刻(24H)(例)8:34:").split(":")
kaishi1 = (int(kaishi[0])*60) + int(kaishi[1])
syuryou = input("終了時刻(24H)(例)13:15:").split(":")
syuryou1 = (int(syuryou[0])*60) + int(syuryou[1])
keikajikan_fun = syuryou1 - kaishi1
keikajikan = divmod(keikajikan_fun,60)
print("経過時間は",keikajikan[0],"時間",keikajikan[1],"分です(^^)")
input()

python3環境がある方でしたらメモ帳にコピペ。名前をjikan.py(何でもおk)
にして
実行権限を与えて
実行可能かとおもいます

えくすとらんは素人ですので実行によっておこったいかなる
トラブルにも対応できませんのでスミマセン

webで時間の計算を探そうとするとなんだか
難しくなってしまいますねぇ><

追記

gui版もつくってみました

アルバイト時間計算機 for gui

easyguiをインストール.インポートしておつかいください


 久しぶりの更新です 備忘録 使っているarchlinuxにnvidiaのドライバを入れたところドライバがあっていなかったのかxが起動せずこれをアンインストールしたがその後xf86-video-nouveauが入っているにもかかわらずxが起動しなくなったのでarchwikiにて調...