さっと見 instant blog

日記的な何かを書いたり、理系大学生の個人的なおすすめ事項をさらっと見れる(はずの)ブログ

pythonがガチで凄かった

どーもどもども絨でーす!

 

今回は少しプログラミングの話をしたいと思います。 元々僕自体はハードウェア系統が興味があって、正直プログラミングはやりたくなかったのですが、どうしてもpythonが必要になったので少しだけ勉強をしております。

そのような都合でpythonを使っているのですが、なんとまあスゴイんですよ。素人の僕でも驚くくらい

僕自身まだ深く勉強できていないので、凄さが伝わる気はしませんが、少しだけスゴイ所を紹介させて下さい笑

 

目次

 

1. 超分かりやすいコード

皆さんもきっとプログラムのコードと言ったらなんだか良く分からない文字の羅列を想像しますよね。僕も全く同じ気持ちです。あれ見ると吐き気がするんですよ。

そんな気持ちで、嫌々pythonをいじり始めたのですが、イメージが大分変わりました。

その原因の1つが、直感的に分かりやすいコードなんです!

以下に、試しで作ったコードと、それによって出てくるグラフを載せます。

このプログラムは、パズドラにおいて使用した魔法石に個数(横軸)に対して、1体以上の強キャラが手に入る確率(縦軸)をプロットするためのものです。

 

[コード]

f:id:mathpacejyu:20190323115320p:plain

図1 グラフ作成のためのプログラム(コード)

 

 

[出力されるグラフ]

 

f:id:mathpacejyu:20190323115450p:plain

図2 出力されるグラフ

結構シンプルなコードでグラフ作れるんだなー。と思った方も多いと思いますが、ほとんど数式をそのまま打ち込んでいるだけですからね。

特にびっくりしたのは、他のプログラミングコードと違って、int型とかdouble型と言った、代入するデータの「型」を指定する必要が無かったことですね。これはプログラミング初心者にとって、とてもやりやすいのではないでしょうか。

 

2. 初心者でも独学しやすい

上の行から順番に、少しプログラムの説明をします。

import numpy as nppython数値計算を行うための拡張モジュールをプログラムにインポートするための文です。

 

import cmathpython複素数(虚数単位iを使うやつ)を扱えるライブラリをインポートするための文です。

 

import matplotlib.pyplot as plt はデータをグラフ化する際に使うmatplotlibの一部機能をインポートするための文です。

 

f = np.arange(0, 120, 1)は、0から120までの1刻みの数列を生成して、fに代入する文です。つまり、fには0, 1, 2, ・・・, 118, 119, 120の数列が代入されます。

 

a0 = 1-(0.4949)**(f/10) は、1から0.4949のf/10乗を引いた値をa0に代入する文です。この数式によって、「強キャラ排出率50.51%のガチャにf個の魔法石を使った時、1体以上の強キャラが当たる確率」a0に代入されます。

 

b0 = 1-(0.90)**(f/10)は、1から0.90のf/10乗を引いた値をb0に代入する文です。この数式によって、「強キャラ排出率10%のガチャにf個の魔法石を使った時、1体以上の強キャラが当たる確率」b0に代入されます。

 

plt.plot(f, a0, color='blue', label="50.5%") は、横軸が魔法石の個数f, 縦軸が1体以上の強キャラが当たる確率a0のグラフに(f, a0)を青色でプロットし、ラベルに「50.5%」を書かせるプログラムです。

 

plt.plot(f, b0, color='green', label="10%") は、横軸が魔法石の個数f, 縦軸が1体以上の強キャラが当たる確率b0のグラフに(f, b0)を緑色でプロットし、ラベルに「10%」を書かせるプログラムです。

 

plt.legend() は、凡例をグラフ上に表示するための文です。

 

plt.xlabel("Number of magic stones used") は、x軸ラベルに「Nunber of magic stones used」を記入するための文です。

 

plt.ylabel("Probability to get one or more fest exclusive monster") は、y軸ラベルに「Probability to get one or more fest exclusive monster」を記入するための文です。

 

plt.show() は、実際にグラフを表示するための文です。

 

どうでしょうか。他のプログラム言語に比べて、いささかシンプルな文ですよね。例えビギナーでも、独学でもやっていけそうな気がしませんか?

 

特に数式を扱う時は、数式を扱うモジュールであるnumpyのおかげで数式を直接プログラムに書き込むだけで良い点等が、直感的でプログラムを作りやすいポイントだと思います。

 

3. まとめ

この記事を読んで、もしpythonを気になった人が居ましたら、是非pythonに手を出してみては如何でしょうか!

 

pythonをダウンロードするページはこちら

www.python.jp

 但し、pythonをダウンロードしてもnumpyなどの拡張モジュールはインストールされていないので、追加でインストールする必要があります。拡張モジュールについてはコマンドプロンプト上でインストール出来ますが、詳細は色々な記事に載っていますので、そちらを是非参考にしてみて下さい。

 

ではではまたまた~~