【1日目】BMIとコラッツ予想【pythonで音楽系人工知能を作るまでの日記】

2022年11月15日

ひょんなことからゼミでpythonというプログラミング言語を学ぶことになった。

ゼミは来年からだけど、ゼミ生にはpython経験者も複数いるとのことで予めpythonを学ぶことにした。

目標としては、ゼミ卒業までに作曲関係のアシストをしてくれるAIを作ること。だから、タイトルに人工知能って入れてる。具体案はない。

私は勿論プログラムの経験はほぼなし。小学生か中学生の頃にブロック崩しを家庭教師と作った気がするくらい。

1日目とあるけど、実際には先週から学び始めているので7日目である。

この7日間はpython japanという組織のゼロからのPython入門講座というサイトで学んでいる。

今は「while文による繰り返し」に入ったところ。マイペースでゆっくりやってる。

結論からいうと、プログラムはめちゃ面白い。作曲と違って理論的だし、区切りが明確でその区切りのスパンも短い。恐らく私は作曲活動よりプログラムの方が向いている。でも、好きなのは音楽なんだよね。悲しいね。

昔、任天堂の岩田社長が「好きなことより、得意なこと、やってて苦痛じゃないことを仕事にした方がいい」と仰ってたのを今でも強く覚えてる。記事を調べてみたらあった→4gamer.net

その理論から行くと、食っていくとしたら私は音楽よりプログラムの方が向いてるんだろうなと思う。でも、絶対私は自分で自分が感動する音楽を作るよ。趣味だとしてもね。

どちらにしろ、私は1年半の間、pythonを学んで機械学習を学んで人工知能を作らなければいけないわけで。更にプログラムが楽しいときたもんだから、この過程を残しとこうっていうのがこの日記でございます。

BMIを測る

pythonの四則演算を習ったところで「これBMI測るプログラム書けるんじゃないか?」と思って書いた。

#身長と体重からBMIを測るプログラム
height = input("あなたの身長(メートル)を教えてください")
weight = input("あなたの体重を教えてください")
BMI = int(weight)/(float(height)**2)
 
print("あなたのBMIは",str(BMI),"です")
 
if BMI >= 25:
    print("あなたは肥満体型です")
 
if 18.5 < BMI < 25:
    print("あなたは普通体型です")
 
if BMI <= 18.5:
    print("あなたは痩せ型です")

まだelseとかは習ってなかったからif文は3つある。
roundという存在も忘れてたから小数点めっちゃ出る。
身長はメートルで入れなきゃいけない。
っていう稚拙なものだけど、パズルみたいでめっちゃ面白かったのを覚えてる。

コラッツ予想を使い自然数を自動的に1にしてもらう

コラッツ予想というのは、どんな自然数も
偶数なら2で割って
奇数なら3倍して1を足す
という動作を繰り返せば1になるというもの。

これの自動化もできると思ってチャレンジした。

#コラッツ予想を使い自然数を1にするプログラム
print("コラッツ予想を使いどんな自然数も1にします")
i = input("好きな自然数を入力してください→")
i = int(i)    #数字を文字データから数値データにする
count = 0     #何回処理したかのカウント
 
while i != 1:       #iが1になるまで処理を繰り返す
    if i%2 == 0:    #iを2で割ったとき余りが出ない=偶数
        i = i / 2
        print(str(i))
        count = count + 1   #カウントを1増やす
    else:           #偶数という条件に引っかからない=奇数
        i = i * 3 + 1
        print(str(i))
        count = count + 1
 
print(count,"回の処理で1になりました")

これは偶数と奇数の表現方法と、printを変数に指定してしまうミスで1時間ちょっとかかったけど、達成感はすごかった。
作曲って本当に100時間かけても>>>完成!!<<<ってならないけど、プログラムは完成が明確で、簡単なプログラムで色んなことが出来るから素晴らしいと思う。
ここ一カ月は一応毎日DAWを開いてるんだけど、これからはその習慣にpythonも入れたいと思う。ほどほどに頑張ろう。