最近、「物理の小道」のサイトに神戸高校生徒以外の人の訪問が増えてきたようです。
管理人(志)としても、神戸高校生の現役だけを対象としているつもりはありません。
(プログラミングコンテストを盛り上げるには神戸高校生現役だけでは余りにも役不足の感じがするもの事実です)
内外問わずコンピュータプログラミングに興味のある人を大歓迎します。
コンテストを通じていろいろな人のプログラムの手法によりプログラムの効率が大きく違ってくる事実を知ること、
自己満足に陥ってしまわず、常にレベルの高いプログラムのソースリストなどからプログラミング技術を学び取ること、
これらの積み重ねが自分のプログラミング技術を高める唯一の方法なのです。
プログラミングの技術は「言語の問題」では決してありません。
自分の頭で考えた以上のことがプログラムで出来るようになるわけではありません。
自分の考えたレベルがそのままプログラミングに現れてきます。
典型的な例を紹介しましょう。それはコンテストの 「素数発見」 競技に見られます。
素数をどのようにとらえるか、どうしたら素数か、素数でないかを判定できるのか
判定方法どのように洗練されたものであるかで、プログラムの働きには天と地の差ほど大きな差が生まれます。
事実、コンテストの結果をみれば、その違いが1万倍以上の差になっていることが分かります。
自分より優秀なプログラムを考えついた人との違いは、プログラミングの技術の違いではありません。
プログラミング技術というより、プログラムを作る人の発想がどれだけ洗練されているかで
プログラムの質の勝負が決まってくるのです。
英語学習に全精力を注いでも、立派な英語の文章が書けるのではありません。
プログラミングの世界も同じなのです。
プログラミングの技術を修得するのは簡単ですが、一流のプログラマになるのは大変な努力がいるのです。
どのようにすれば自分の考えが洗練されたものになるか、これは全教科の勉強の総合力で決まります。
知識と経験でそれらの違いが現れるのです。
考え方、とらえ方の違い、これらを「素数発見」競技のコンテストの趨勢が決まった後に、
素数の考え方のどこが、どのように違うのかを、それぞれのプログラマーのソースリストをもとに解説する予定です。ご期待ください。
「10,000 までの素数を全て見つけて、ファイルにテキストファイルとして保存する」までの
時間を競うコンテストです。応募者はいるのかな? 応募期限は定めません。
プログラミング言語は自由です。自分の得意なもので参加ください。
プログラム処理の時間は自主的に計って報告ください。
応募者を信頼しています。なお、コンテスト上位になった人のソースリストなどを提出して頂くことがありますので
その場合には協力ください。
コンパイラ部門とインタープリタ部門とに分けます(部門の区別がなければコンパイラが圧倒的有利なのは当然だからです)。
通常、同一ソースのプログラムの場合、100倍程度は違ってきます。
また、Windows上でのプログラムはGUIの処理の部分で時間を取られる関係で少し不利だと思います。
※ コンテストの詳細規定、開発ツール(フリーのプログラミング言語など)の入手法などについては 第1回コンテスト詳細 のページをご覧ください。
普通の電卓は8桁の計算ができるのですが、それ以上の桁の計算になるとエラーになってしまいます。
電気店に行って探すと12桁の計算が出来る電卓もあるようです。
しかし、20桁の計算が正確に出来る電卓は市販されていないようです。
そこで、パソコンの力を借りたいのです。
第2回プログラム・コンテストでは、この20桁の計算が出来るプログラムを作ることがテーマになります。
使用するプログラミング言語は問いません。計算が出来ればよいという簡単なプログラムで結構です。
詳しくは 第2回コンテスト詳細 のページをご覧ください。
なお、「引き算」部門、「掛け算」部門、「割り算」部門も同時開催合わせてしています。
普通の電卓は8桁の整数、小数の計算が可能ですが、分数の計算は苦手なようです。
そこで、パソコンで分数計算が出来るようにプログラムを作ってもらいたいのです。
第3回プログラム・コンテストでは、この分数計算が出来るプログラムを作ることがテーマになります。
使用するプログラミング言語は問いません。計算が出来ればよいという簡単なプログラムで結構です。
詳しくは 第3回コンテスト詳細 のページをご覧ください。
なお、「引き算」部門、「掛け算」部門、「割り算」部門も同時開催合わせてしています。
文字列を並べ替えることは人間にとって簡単なことです。パソコンでこれを行ってください。
説明の必要がないと思いますが、念のため一例を示しておきます。
123456789 → 987654321 や abcdefgh → hgfedcba のようなことです。
詳しくは 第4回コンテスト詳細 のページをご覧ください。
なお、「辞書順並べ替え」部門も同時開催合わせてしています。
文字列を置き換えることは人間にとって簡単なことです。パソコンでこれを行ってください。
説明の必要がないと思いますが、念のため一例を示しておきます。
123456789 → 123456789 や abcdefgh → abcdefgh のようなことです。
詳しくは 第5回コンテスト詳細 のページをご覧ください。
なお、「全角半角置き換え」部門も同時開催合わせてしています。
小学校で習った積み算計算ですが、パソコンで積み算結果を表示できないでしょうか?
足し算と引き算は簡単ですから、掛け算、割り算、開平の3部門を設けます。
詳しい説明は必要がないと思いますが、念のため一例を示しておきましょう。
123
× 56
---------------
738
615
---------------
6888
なお、「割り算」、「開平」 部門も同時開催しています。
円周率を3桁(3.14)まで求めるプログラムを作成してください。これだけです。
順位は、「円周率を求める求め方」のユニーク度で順位を決定します。
この判断は、管理人の独断でアルゴリズムの評価を行いますのでご容赦ください。
皆さんの創造的なアルゴリズムをお待ちしています。
今回はアルゴリズムの説明、プログラム・ソースリスト、実行時間、PC環境詳細を
提出(メール、掲示板)してください。
詳しくは 第7回コンテスト詳細 のページをご覧ください。
木製パズルを解くプログラムです。
皆さんの創造的なアルゴリズムをお待ちしています。
今回はアルゴリズムの説明、プログラム・ソースリスト、実行時間、PC環境詳細を
提出(メール、掲示板)してください。
詳しくは 第8回コンテスト詳細 のページをご覧ください。
![]() |
第1種目 | 「素数発見のスピードを競う」種目 | 部門の記録 |
![]() |
第2種目 | 「超電卓」種目 | 部門の記録 |
![]() |
第3種目 | 「分数計算」種目 | 部門の記録 |
![]() |
第4種目 | 「文字列並べ替え」種目 | 部門の記録 |
![]() |
第5種目 | 「文字列置き換え」種目 | 部門の記録 |
![]() |
第6種目 | 「積み算」種目 | 部門の記録 |
![]() |
第7種目 | 「円周率」種目 | 部門の記録 |
![]() |
第8種目 | 「木製パズル」種目 | 部門の記録 |
このページは2003/2/1 に最初に作成されました。