第9講 社員の分身の術(関数の再帰的使用)
第1話 社員の分身の術?
前話の
void g(int **x){
int i,j;
for(i=0;i<4;i++){
for(j=0;j<4;j++){
if(x[i][j]<10)printf("0%d ",x[i][j]);
if(x[i][j]>=10)printf("%d ",x[i][j]);
}
printf("\n");
}
}
のように、for文の中にfor文が入っている繰り返し処理を、
2次元ループといいます。
さらに、第7講第10話の3次元配列を送ったり返したりするで扱った
for(i=0;i<3;i++){
for(j=0;j<5;j++){
for(k=0;k<4;k++){
x[i][j][k]=rand()%10;
}
}
}
これは、for文が入れ子式に3重に入っていますから、
3次元ループです。
皆さん、
私が開発した各種の魔方陣自動生成アプリや数独問題自動生成アプリは、
何次元ループを行っていると思いますか。
こう質問するんだからきっとかなり大きい次元のループ処理を行っているんだ・・・
7,8次ぐらいかなと予想されるかも知れません。
実は、この答は正解からほど遠いのです。
正答は、
数独問題自動生成アプリなら、少なくとも500次元ループ処理、
100次魔方陣クラスになると、数万次元ループクラスです。
もちろん数万次元ループをfor文で実現することは、
不可能です。
これを可能にする術こそは、
社員の分身の術です。
でも、分身の術といっても猿飛佐助などの忍者の分身の術とは少し違います。
正確には、人形が自分の中に入れ子式に自分の分身を作り出す術です。
七福神のように、空洞になっている人形が、
自分の中に自分と同じ姿をした人形を作り出すのです。
理論的には、いくらでも入れ子式に分身を作り出すことが出来ます。
現実的には、メモリの限界がありますから、もちろん無限ではありません。
しかし、数百万ぐらいの分身を自分の中に作り出すことは可能です。
自分の中に自分の分身を作り出すことは、
実はとても簡単です。
それは、社員が自分に仕事を依頼すれば良いのです。
自分が自分に仕事を依頼する???
どういうことでしょうか。
気になる方は次話をクリック。
第8講第10話へ 第2話へ
初心者のための excel 2016 マクロ VBA 入門講義 基礎から応用まで
vc++ c言語 c++ 入門 初心者 基礎から応用まで
eclipse c++ 入門
魔方陣 数独で学ぶ VBA 入門
数独のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第1部
eclipse java 入門
java 入門 サイト 基礎から応用まで
本サイトトップへ