FC2ブログ

名もなき黒猫の散歩道

MENU

パソコンの計算能力

お久しぶりです、黒猫です。今日は室温が20℃を久々に下回って、寒くなったな、と思う毎日です。


さて、今日はプログラミングの話。
ふと「パソコンの計算の速さってどれくらいなのだろう」と思い立ち、「1から整数xまで順番に足し合わせるのに必要な時間」を計測することにしました(なぜ、とは聞かないで)。
使った言語はPython3で、こんな感じに書いて、

コード
(画像でごめんなさい、初心者なので不適切な箇所があるかも知れませんがあしからず)

あとは2行目の1e5 (= 100000、これが整数X)を色々と変えて、実行してから9のアウトプットが出てくるまでの時間を計ってもらいました(by Atomのパッケージ)。

で、その結果が以下の感じになりました。
Python3_speedtest 見事に、1から10の5乗までを足す計算を境に、計算時間が直線的に増加しています。
このグラフは両軸常用対数なので、この範囲では
log(要した時間) = k × log(整数X) + C
が成立しているということです。手元にある統計ソフトで近似すると(図の点線)、k = 0.979、C = -6.381だったので、計算し直せば、私のノートパソコン(MacBook)では、

整数Xまでを順番に足すのに要する時間(秒) = 4.16 × (10の-7乗) ×(整数X)の0.979乗

となるようです!

だからどうした。

・・・と自分でも突っ込みたくなりましたが、まぁそんな感じになるとは知らなかったので、少し感動しました 笑。整数Xは別の言い方をすれば「足し算をした回数」であることと、0.979は1とほとんど一緒であることを考えれば、
整数Xまでを順番に足すのに要する時間(秒) = 4.16 × (10の-7乗) ×(足し算をした回数)
と、近似できそうですので、1回の足し算あたり0.416マイクロ秒かかっている、ということになるのかもしれません。この0.416マイクロ秒が何を示すのかは分かりませんが、おそらく使用したプログラム言語、コードの書き方、ハードの能力など、色々な因子が絡み合った結果なのだと思います。ちなみに、10の5乗以下の足し算は、プログラムが動くまでにかかる時間が足し算の時間より長いために、一定になっていると思われます。それにしてもものすごい速さで計算できるのですね。改めて実感しました。

この計算をしている時に少し面白いことを知ったのですが、それを記事にするには私の知識が浅すぎるので、またの機会に書きたいと思います。

それでは、最後まで読んで下さってありがとうございました!



スポンサーサイト

だいたい半年。

お久しぶりです、黒猫です。特に書くこともないのですが、こちらに来て半年経ったのか、と思ったのでブログを書くことにしました 笑

半年経って思ったことは、「英語はすぐには上手くならない」です。笑
ちゃんと書けば、英語を話す力はそんなに上達しない、と実感しました。
英語を聞く力は、やはり聞く機会が圧倒的に多いために、相手が少しインド系や中国系などでも、聞き取れる(意味が分かるわけではない)ことが多くなった気がします。英語を書く力も、まぁメールが英語だったりするので、適当に簡単なことを書くことはできるようになった気がします(アカデミックな英語ではなく、日常英語)。英語を読むのも、読まざるを得ないので、少し速くなりました。たぶん。ただ話すのは、来た直後ほど悪いわけではないですが、やっぱり語彙力がものすごく上がるわけではないためか、つっかえることがまだある印象です。英語って奥が深いですね。本当に。笑

研究のこと。ここでの研究は、「技術力が命」という側面が非常に強く、半年かけて実験器具の立ち上げからすべてやってきました。実験を実際に行い始めた4ヶ月くらい前に比べれば、かなり実験できるようになってきているとは思います。もう少し効率を上げることができれば、という印象ですが。あとは今行っていることをどこまで詰められるか、というところですね。次の半年が大きな節目になりそうな気がします。

その他。もう少し遊びに行きたい 笑
しかし、お金がそんなにないんですよね。。家賃がとってもお高いせいで、自由に使えるお金が限られているので、なかなか渋ってしまう毎日です。もう雨期も始まってしまうし、雨期が明けるまでは遠出はできないかな。。次の春までに行きたいところを考えないといけませんね 笑 ヨセミテにはいつかチャレンジしたいですが。

あと、ここ1,2ヶ月くらい、pythonの勉強を再開していました。日本から持ってきていた初心者用の本をついこの前やっと読み終えて、なんとかpythonで「入力した文字を、レコードと照合して、同一のものが無ければ、外部のテキストファイルに保存する」という単純なGUIを作る術を学びました。本当にプログラミングのことなんて全く知らなかったので、案外ウィンドウそのものを作るのは簡単だったり、ウィンドウを上の隅のxで閉じた時に出る警告メッセージはちゃんと組み込まないといけないものだったり、日常的に使っている物の偉大さを感じました。でも楽しく勉強できたので良かったです。次の半年以内に、この仕組みを使って、今の実験の簡潔なレコードを作るGUIや、簡単なゲームのGUIを作りたいと考えています。じゃんけんをするプログラムは昔に作ったので、それをGUI化できれば良いなと考えています。五目並べとかも作れると良いなぁ。難しそうですが。

あとは、趣味として、こちらに来て1ヶ月くらいして、ギターを買いました。アメリカですが、YAMAHAのクラシックギターです 笑。ケース付きで150ドルだったので、まぁそんなに高くなかったですが、そこそこいい音が出るものを探し出せたので、個人的には満足しています(ギターって同じ型番でも、1本1本音が違うのです)。
それと、チェスを少しだけ囓り始めました 笑 でも最近は勉強できていないので、これはもうすぐフェードアウトしてしまうかな?まだわかりません。でも、チェスっておもしろいな、とは思いました。将棋よりもパズル感が強いです。将棋も強くないので全然わかんないですが 笑
ギターは、こっちでできたスイス人の友達と月に1-2回の頻度で一緒に弾いて楽しんでします。彼はギターをもう16年もやっているようで、最近マンドリンを買って、それを弾いて楽しんでいます。私がギターを始めたのは大学でマンドリンサークルに入ったからです。ですので、6年ぶりにマンドリンと再び合わせることになりました。人生、いつの選択が活きるのかって分からないものです。

そんな感じですかね。半年ごとにはまとめを書くのも悪くないかもしれません。
何はともあれ、おそらく最初で最後の海外生活なので、悔いのないように頑張りたいと思います。

何にも読んで得する箇所がなくて申し訳ありません 笑
それでは、読んで頂いてありがとうございました!

該当の記事は見つかりませんでした。