App Description

天才補完計画7 アルゴリズムの変貌
このアプリは、シリーズ1~10まで続くクイズアプリです。
ストーリーは、セカンドインパクトが起こる前に、未来に必要な天才を探し出し、補完すること。
必要とされるアルゴリズムに関してのクイズアプリです。

アルゴリズムとは、
問題を解決するための方法や手順のこと。問題解決の手続きを一般化するもので、プログラミングを作成する基礎となる。アルゴリズムは1つの問題に対し、複数ある場合が多い。たとえば、文字をアルファベット順に並べ替えるには、複数のアルゴリズムが考えられる。アルゴリズム次第で、プログラムのサイズや汎用性などが変わってくるため、効率的と思われるものをプログラムに採用する。アルゴリズムは流れ図(フローチャート)を用いて図式化される。
アルゴリズムについての様々な雑学や歴史、取り組んでいる内容や数学者に関するクイズです。
このアプリから、アルゴリズムについて楽しく学ぶことができます。
では、身近な事でアルゴリズムの具体例を出しましょう。
(かなり単純化したアルゴリズムですし、本来の記述法は無視しています)

【テーブル上のコップを持ち上げる】
 コップの場所を認識する
    
 腕を動かす
    
 腕はコップの近くまで到達したか?
    (Yes)        (No)
 腕の動きを止める   「腕を動かす」へ戻る
    
 手のひらを広げる
    
 手のひらでつかめるように腕の位置を調整する
    
 コップをつかむ為、手のひらをすぼめる
    
 指先までコップに触れたか?
    (Yes)        (No)
 つかむ力を加減する  「手のひらをすぼめる」へ戻る
    
 腕を移動させる
    
 コップが傾いていないか?
         (No)          
    (Yes)  コップの傾きを調整
         
 腕は目的の場所まで動いたか?
    (Yes)       (No)
 処理終了       「腕を移動させる」へ戻る

人間が無意識にしている動作も、機械に正しくやらせようと思うと、
このような(本当はもっと細かな)手順を機械に教えなければなりません。 アルゴリズムに誤りがあったり、穴があったりすると結果が間違ったものになってしまうのです。
上の例で言えばコップの場所を認識しなければ腕を動かしたときにコップを倒してしまうかもしれないし、指先までコップに触れたかチェックしないとコップを握りつぶしてしまうかもしれないし、コップが傾いていないかチェックしなければ水がこぼれてしまうかも知れないのです。
注意しなければならないのは、結果に問題が出ないようにあらゆる可能性を考慮したアルゴリズムを作ることでしょう。例えば割り算のアルゴリズムなら割る数が0にならないようにチェックするとか。

さらに
たとえば、1から100まで足し算することを考えてみよう。
1に2を足したら3、3に3を足して6、6に4を足して……と99回の足し算を手作業でがんばる人もいるかもしれない。実際、昔の人はそうやって足し算していた。しかし、この問題は、等差数列の和の公式を使えば(1+100)*100/2 = 5050と四則演算をたった3回するだけで答えが出る。

つまり、アルゴリズムが優秀であれば、計算量を減らすことができるのだ。

ただし、手順が異なるだけであり、同じ問題を解決するのであるから、アルゴリズムの優劣によらず答えは一致している必要がある。

答えが同じなのに計算量を減らすのが何の役に立つって? と思われるかもしれないが、これは非常に重要な問題で、第二次大戦以前からずーーーーっと脈々と研究が続けられてきた。なぜなら、計算する量が少なければ少ないほど、コンピュータが短い時間で答えを出せるからだ。
それだけではない。たとえば現在広く使われているRSA暗号は、「コンピュータに解読させようとすると、あまりに時間がかかりすぎる」という理由で安全性が保たれている。 P≠NP予想

つまり、「どんなRSA暗号でも速く解読するアルゴリズムを手に入れたぜ!」と宣言し、しかもそれが正しいと認められたなら、莫大な富と尊敬を得られる……かもしれない。いやむしろ、真っ先にFBIやらインターポールやらペンタゴンやらMI6やらがやってきて、映画「マーキュリー・ライジング」の登場人物のような運命が待っているのだろうか。とにかく全世界が震撼するのは間違いない。

iPhone Screenshots

(click to enlarge)

天才補完計画7 アルゴリズムの変貌 screenshot 1 天才補完計画7 アルゴリズムの変貌 screenshot 2 天才補完計画7 アルゴリズムの変貌 screenshot 3 天才補完計画7 アルゴリズムの変貌 screenshot 4 天才補完計画7 アルゴリズムの変貌 screenshot 5

App Changes

  • November 07, 2016 Initial release