第2部AB図2.8:3n+1問題のアルゴリズムのPADによる表現図2.7:アルゴリズムの基本3パターンのPython言語による表現1950年代に式を扱うことができる高水準言語であるFORTRANが開発され、現在でも科学技術計算用言語として用いられています。事務処理向きの言語であるCOBOLや記号処理に適した言語であるLISPも開発されました。1970年頃にはアルゴリズムの3基本パターンを明解に記述することができるPASCALやC言語が開発されます。その後、オブジェクト指向という考えを取り入れたC++, JAVAなどが開発されます。データサイエンス、特に機械学習にはPythonが広く使われるようになりました。以下では Python言語を用いたプログラミングについて説明します。計算機を用いて問題を解くには、計算機向きのアルゴリズムとデータ表現(記憶場所の使い方など)を考え、これらをプログラミング言語を用いて表現します。アルゴリズムの3基本パターン(基本制御構造)と入出力の書き方がわかればプログラムを作成することができます。Python言語ではアルゴリズムの3基本パターンを図2.7のように記述します。ある整数が偶数なら2で割る。奇数なら3倍して1を加えるという操作を繰り返すと、どの自然数から出発しても最後は1になると予想されています。例えば 5から出発すると、5 → 16 → 8 → 4 → 2 → 1、 7から出発すると7 → 22 → 11 → 34 → 17 → 52 → 26 → 13 → 40 → 20 → 10→ 5 → 16 → 8 → 4 → 2 → 1 のように最後は 1 になります。まだ証明はできていません。整数を入力して最後は 1 になるかどうか確かめるアルゴリズムをPADを用いて表現すると図2.8のようになります。計算機向きのプログラムを記述するために用いられるのがプログラミング言語です。プログラミング言語にはCPUに備わった命令を2進数で表現した機械語、アルファベットで表現したアセンブリ言語などの低水準言語と、より抽象度が高く、数式なども扱うことができる高水準言語があります。3n+1 問題 nをセットnが1でない間nが偶数nを表示n ← n÷2n ← 3n+118PADAB条件プログラミング言語の変遷図式表現からプログラムへ例題:3n+1 問題(コラッツ予想)APythonABif 条件: Aelse: Bwhile 条件: A条件連接選択反復プログラミング言語
元のページ ../index.html#18