ウェブアプリ

コンピュータが1秒間でプログラムを何回くらい実行できるのかをクイズ形式で確かめられるサービス「One second code」


コンピュータがどれくらいの速度でプログラムを実行するのかを直感的に理解することは非常に難しいものです。そこで、コンピュータの速度を理解するために、単純なプログラムを1秒間に何回ループできるのかをクイズに答えながら学べるサービス「One second code」が、プログラマーによって作成されています。

One second code: Do YOU know how much your computer can do in a second?
http://computers-are-fast.github.io/

これが最初のクイズ。以下の「sum.c」というプログラムが1秒間にどれくらいの数のプログラムをループできるかをクイズ形式で答えればOK。C言語で書かれたプログラムは「入力した数字までを1刻みで数え上げる」という単純なもの。


クイズは範囲で答える仕組みで、誤差10倍(10分の1倍)以内ならば正解というスタイルです。例えば、「50(回)」が正解だと考えるときは、10から100の数字ということで「10」もしくは「100」を選択すれば正解となります。今回は、「数億レベル」という膨大な回数を実行できると予想して「1,000,000,000」をクリック。


すると正解の範囲を示す数字が緑色に変わり、正解した印であるチェックマークが表示されました。なお、答えは「5億5000万回」だった模様。


C言語につづいてPythonで書かれた単純なループプログラム。


「きっとC言語よりはずっと遅いだろう」などと考えつつ、「1,000,000」をクリック。


不正解の場合はクリックした数字が赤色に変わり、「×」マークが表示されました。なお、正解は6800万回とのこと。このように、C言語、Pythonで書かれたプログラム全18問について、ループできる回数をクイズ形式で答えていけばOKです。


1秒間に繰り返されるプログラムの数は、コンピュータの速度だけで決まるわけではありません。例えば、以下の問題は、http://google.comから応答が何回あるかを考えるクイズ。


正解は4回。この場合はGoogleサーバーからの応答速度がボトルネックになるようです。


書き込み回数を考えるプログラムでは、「SSDに書き込む場合」などの条件があるので、それにあわせて考える必要があります。


メモリやCPUのキャッシュメモリの速度を想定する必要がある問題など、さまざまな条件を勘案して、プログラムの実行速度を推測する必要があるので、プログラミングの知識だけでなく実際の挙動をなんとなくイメージできる「肌感覚」のようなものも試されるようです。


なお、正解した数や残りの問題数はブラウザの最下部に表示されます。結果は「5/18」と撃沈。


One second codeではクイズで出されるプログラム言語はC言語とPythonに限られますが、これらのコンピュータ言語とハードウェア、ネットワークなどコンピュータ全体に関する総合的な知識に自信がある人は、全18問に答えてスコアを競うのもよさそうです。

この記事のタイトルとURLをコピーする

・関連記事
もし16種類のプログラム言語が武器になったら - GIGAZINE

Pythonが大学の入門用プログラミング言語として人気を集めていると判明 - GIGAZINE

誕生から50年を迎えたプログラム言語BASICの歴史、その精神とは - GIGAZINE

若かりし頃のビル・ゲイツがMicrosoftの今後やプログラミングについて語るインタビュー - GIGAZINE

MicrosoftがMS-DOSとWordのソースコードを一般公開、サイズはなんと300KB未満 - GIGAZINE

「なんだこの糞コードは!(怒)」「書いた奴出てこい!(怒)」と言いたくなるほどヒドいプログラムのソースコードを集めた「ウンコード・マニア」 - GIGAZINE

in ネットサービス, Posted by darkhorse_log

You can read the machine translated English article here.