パソコンが「1億個の計算問題」を解くと、どのぐらいで終わるのか?|プログラミング言語ごとのスピード対決もやります!

オススメ

やってみたいけど面倒くさい「プログラミングで計算問題を1億問解く」「プログラミング言語別のスピード対決」をやってみました。
高速で計算ができるコンピュータのプログラミングですが、一体どのぐらい速いんでしょうか?
また、プログラミング言語ごとにスピードが大きく違いますが、それもどのぐらい違うのか試してみました。
本編をどうぞ!
(計算が単純すぎる、関数呼び出しのオーバーヘッドのこと、時間計測方法など突っ込みどころはあると思いますが、あくまでエンターテイメントです!)

※訂正
Rubyの生みの親:まつもとひろゆきさん→まつもとゆきひろさん

▼目次
00:00 プログラミングで計算問題を1億問解く
05:34 プログラミング言語別のスピード対決

▼関連動画
・初心者でもわかる超入門コース
Python超入門コース(https://youtu.be/HyU3XL2F9GE)
JavaScript超入門コース(https://youtu.be/gs0l4rsQCGM)
Java超入門コース(https://youtu.be/kjxetd5ylzI)
PHP超入門コース(https://youtu.be/bLxQYJV75h4)
Go超入門コース(https://youtu.be/kPXfMFJ0oIE)
Ruby超入門コース(https://youtu.be/0DO5bsQB5So)
Kotlin超入門コース(https://youtu.be/UswtcJlDZ3I)

・業務自動化の関連動画
Pythonで面倒なExcelの仕事を自動化しよう【第一弾】(https://youtu.be/-5v7CuXm7Ns)
Pythonで面倒なExcelの仕事を自動化しよう【第二弾】(https://youtu.be/nfOeBBotc2k)
Pythonで面倒なExcelの仕事を自動化しよう【第三弾 】(https://youtu.be/Qy4j2KA1pvw)
Pythonで株価のデータ分析(https://youtu.be/0-fZ47QudYo)
Pythonで面倒な「ブラウザ操作」や「データ収集」の作業を自動化しよう(https://youtu.be/LgZ8Li97yoM)

・Excek関連動画
Excelでダイエット管理表を作成(https://youtu.be/wqMdKYg8gqU)
脱・初心者 Excelの使い方講座【関数編】(https://youtu.be/rjHL1eeiPWc)

▼自己紹介
現在:フリーランス(マーケティング関連の人工知能開発、データ分析や業務自動化などの開発 & コンサルティング)
前職:リクルート

▼SNS
Twitter : https://twitter.com/kino_code/likes
Facebook : https://www.facebook.com/%E3%82%AD%E3%83%8E%E3%82%B3%E3%83%BC%E3%83%89-105693727500005/
Website : https://kino-code.com/

▼文字書き起こし
この動画では、タイトルにある通り、プログラミングで「1億個の計算問題」を解くといういうことをやってみます。
今、人工知能が実社会でも活用されていますよね。
その人工知能が発展した理由の1つとして、パソコンなどのコンピューターの計算スピードがアップしたことがあげられます。
そして、プログラミングを動かしているのは、パソコンなどのコンピュターです。
その高速で計算することができるコンピュータのプログラミングですが、一体どのぐらい速いんでしょうか?
私が3年前に買って、ちょっと古びてきたMacbookProを使って実験をしていきましょう。
パソコン画面に切り替えて進めていきましょう。
動画の後半には、プログラミング言語ごとのスピード対決もやりますのでお見逃しなく。
プログラミングに解いてもらう計算問題は、足し算、引き算、掛け算、割り算を順番に解いてもらいます。
具体的には、(計算する方、計算される方だとすると)
1-1=0
1*2=2
1/3=0
1+4=5
1-5=-4
1*6=6
1/7=0
1+8=9
1-9=-8
1*10=10
1/11=0

/9991=0
1+9992=9993
1-9993=-9992
1*9994=9994
1/9995=0
1+9996=9997
1-9997=-9996
1*9998=9998
1/9999=0

9999/9991=1
9999+9992=19991
9999-9993=6
9999*9994=99930006
9999/9995=1
9999+9996=19995
9999-9997=2
9999*9998=99970002

試しに、人間の男性、40代のおじさんが1分間でどれだけ解けるかやってみます。
実際プログラミングが解く問題と同じですが、おじちゃんなので1桁ずつの計算だけで全力で解いていく!
問題を解く。
さぁ、結果です。
1分間に33問でした。非常に大量に解くことができました。
ちなみに、この高速スピードであっても、1億問解くのに、303万分かかります。
1日8時間解き続けると、17年かかります。
4桁同士だと何倍もかかりますね。
僕は41歳なので計算問題を解き切る前に老衰しているかもしれないです。
さて、それではプログラミング言語は、私より高速に解くことができるのでしょうか?
パソコン画面に切り替えてやっていきましょう。
一言にプログラミング言語と言っても、プログラミング言語には種類があります。
人工知能が作れる今や人気No1言語と言ってもいいPythonでやってみましょう。
ソースコードはこんな感じです。
このソースコードはキノコードのウェブサイトに置いてありますので、触ってみたいという方はいじってみてください。
ソースコードを簡単に説明をすると、数字を4で割って、割り切れれば足し算、余りが1なら引き算、余りが2なら掛け算、余りが3なら割り算をするといったことをやっています。
こういったプログラミングのレッスンは、Python超入門コースという初心者の方でもプログラミングを学べる動画も作っていますので、ご興味ある方はご覧ください。
今、右側にカードが出ています。また、概要欄にもURLを貼っておきます。
さて話を戻して、Pythonだと、1億問の計算がどのぐらいで終わるか?
それでは実行してみましょう。スタート!
結果は、16.168秒でした。
私が17年かかる計算を16秒で終わらせてしまいました。
私の1100万倍の速さです。
調べてみると、私がカタツムリだとすると、パソコンのスピードは東海道新幹線よりも旅客機よりも速い計算になります。想像ができないスピードですね。
ただし、こんなに計算が速いPythonですが、実はプログラミング言語の中ではスピードは遅い方なのです。
そこでこの動画の後半では、6つのプログラミング言語のスピード対決をやってみたいと思います。
先ほど実行をしたPythonのソースコードを若干変更をして、1万回に1回、現在の計算回数を表示されるようにします。
つまり、1と表示される時は1万回計算が終わっており、2と表示されるなら2万回。100と表示で100万回。10000と表示されると1億回計算が終わったことになります。
また、計算回数を表示させるプログラムを追加するので、10000回、数字を表示させる処理を走るので、Pythonの計算結果は、先ほどの16.168秒より遅くなるはずです。
それでは、Pythonとスピード対決をする対抗馬のプログラミング言語を紹介します。
1枠は、Pythonです。人工知能、ビッグデータ分析、Webアプリケーション開発など今やひっぱりだこの人気言語。ただし、このキノコードダービーの本命ではありません。
続いて2枠は、Javaです。求人数が多い言語ダービーで何度も1位も獲得、銀行や官公庁のシステム開発に使われるお堅いやつでございます。オブジェクト指向言語の申し子は、どこまでトップ争いに食い込めるか。
3枠はJavaScriptです。ブラウザ上で動く紅一点の牝馬です。最近ではnode.jsというサーバーサイドでも動く心の広い牝馬でもあります。
4枠は、島根県で生まれた唯一の日本馬です。生みの親のまつもとひろゆきさんも、馬主席からキノコードダービーを見守っています。
5枠目はGo言語です。Google生まれのサラブレッドです。平均給料が一番高いというサラブレッドの名を欲しいがままにしています。スピードにも定評があります。
最後の6枠にC言語です。「プログラムの世界はC言語できている」とも言われた1972年生まれのベテラン馬です。このベテラン馬は、新しい言語たちにどこまで対抗できるのでしょうか?
それでは、出走の準備が整ったようです。それでは、キノコードダービースタートです。各馬一斉にスタート。

続きは文字書き起こしブログにて。

▼ソースコードの置き場所
https://kino-code.com/solve_calculation/

#プログラミング #パソコン #スピード対決

▼お仕事のお問い合わせ
キノコードでは、仕事の自動化の開発業務&コンサルティング業務のみを現在受け付けております。
お問い合わせ先かTwitterのDMか、「キノコードトップページ→概要」にあるメールアドレスまでお問い合わせください。

コメント

  1. na _gi より:

    動画編集もmacbookでやってるんですか???

  2. kurione より:

    一着圧倒的すぎて笑った

  3. 力波六零四 より:

    単純な計算スピードが言語の優劣ではないので、そこは初心者に誤解されたくないですね(そんな誤解する人はいないか…)
    各言語とも特性に応じた利用シーンがあるということですからね
    しかし、40歳でオッサンと言われてしまうと私はもうジジイか…w

タイトルとURLをコピーしました