• 締切済み

Perl言語を使ったハノイの塔の解き方

Perl言語(再帰処理)を使ったハノイの塔の解き方を教えてください。 引数は3でお願いします。 他の言語での解き方は解説サイト等があるのですが、Perl言語の解説はあまり載っていないので是非教えてください。

  • Perl
  • 回答数1
  • ありがとう数2

みんなの回答

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

「引数は3でお願いします。」の意味は不明ですが, 再帰版では Perl だろうと Java だろうと C だろうと大して違いはありません. だから「Perl での解説」は特に必要ではないでしょうね. 非再帰版なら (うまくやれば) 簡単になりますが.

関連するQ&A

  • ハノイ塔の非再帰について

    VBでハノイの塔(非再帰)で作りたいのですが、 考え方がまったくわかりません。 ハノイの塔(非再帰)をVBで作った事のある方、 良ければ基本的な考え方を教えてください。

  • C言語 ハノイの塔

    #include<stdio.h> void hanoi(int n,char a,char b,char c); int main(void) { int n=3; printf("円板の枚数 ⇒ " ); hanoi(n,'a','b','c'); return 0; } void hanoi(int n,char a,char b,char c) { if(n > 0){ hanoi(n - 1,a,c,b); printf("%d番の板を %c から %c に移動\n",n,a,b); hanoi(n - 1,c,b,a); } } このときの再帰の処理がわかりません。。 再帰の間にprintfがあるのでどこがつながっているのか順番がわかりません。 具体的な数値の手順を教えてください。

  • ハノイの塔の解き方

    ハノイの塔について質問なのですが、 3本棒の 5枚の円盤をときたいのですが、 最短距離で動かす法則を知りたいのですがさっぱり分かりません。 他でも調べたのですが数式がでてきて、よくわからなかったです。すみません、どなたか教えてください!

  • ハノイの塔のプログラムの疑問点

    ハノイの塔のプログラムについて調べていて http://www.kernelthread.com/hanoi/ というサイトを見つけいくつかの言語でのソースを見ていたら、pascalのところで疑問がある箇所がありました。 writeln('move ', Tfrom:1, ' --> ', Tto:1); というところです。実行すると「move1-->3」など円盤の動きがわかりましたが、ここの「 :1 」という記述の意味がわかりません。 ここの意味を教えてください。

  • perl ハノイの塔の解に順番付けする方法

    プログラミング初心者です。 サブルーチンを用いて、ハノイの塔の解を求める課題で詰まっています。 解自体は求めることができたのですが、それぞれの解の順番(輪を移動させる順番)を一緒に表示させよという指示が出ており、この方法がわかりません。 表示順に上から番号を振るという考え方でよろしいのでしょうか。 まず考え方自体が違うようであれば、そこから指摘して頂きたいと思います。 よろしくお願いします。 ちなみに現状ではこのようになっております。 #!/usr/bin/perl sub hanoi { my ($no , $x , $y , $z) = @_; if( $no = $no){ hanoi ($no-1,$x,$z,$y); print "Move", $no ,"from" , "$x" , "to" , "$z" , "\n"; hanoi ($no-1,$y,$x,$z); } } print"入力された枚数のハノイの塔の解(順番付き)\n"; $data=<>*1; hanoi($data , "A" , "B" , "C");

  • ハノイの塔

    次のc言語で書かれたハノイの塔のプログラムをZ80で動作させたいのですが、アセンブルするとどうなるのでしょうか??教えてください。 void move(char n,char a,char b){ if(n>1)move(n-1,a,6-a-b); if(n>1)move(n-1,6-a-b,b); } int main(){ char n=5; move(n,1,2); }

  • ハノイの塔っぽいゲームだったと思うのですがルールが思い出せません

    質問お願いします。 たしかハノイの塔のようなゲームだったと思うのですが 7枚の円盤を他の器を使いながら移し変えて、もとの入れ物に逆さまの順番にする。 これが終わったら世界は崩壊するみたいな設定だと思ったのですが、これで合っているでしょうか? 実際計算すると何万年もかかるというオチだったのですが、詳しい設定や名前、ルールなどがうろ覚えです。 円盤はたしか7枚だったと思うのですが、wikipediaのハノイの塔のバリエーションでは64枚も使っているので別のゲームだったかなと混乱しています。 覚えてる方がいましたらこのゲームについて詳しくお願いします。

  • Perl言語を使っています

    Perl言語を使っています URLを定義して、 その、Webサイトの中を表示するといったようなことは 可能なんでしょうか?? もし、可能であれば サンプルソースなど、 おねがいします 文字だけで構いません あと、10文字表示したいのに その、システムが5文字しか 表示できない場合に 残りの5文字はどのようにして表示させるのでしょう 2つも書いて申し訳ございません print "Prel言語使います" だけど、5文字しか表示できないそうなると "Perl言"こうなります、残りの5文字はどのようにすればいいのでしょう

    • ベストアンサー
    • Perl
  • なぜ CGI は Perl 言語で作成/動く環境が多いのか。

    最近 CGI に興味をもちここで質問しながらネット検索をしました。 すると Perl 言語での CGI サンプルが一番多く C 言語で作る CGI の サンプルが少し見つかりました。 私の使っている無料サーバーでも CGI は使えますが Perl 言語だけ有効です。 セキュリティの問題で SSI と組み合わせた C 言語の CGI は実行出来ないようです。 質問内容: (1)なぜ CGI は Perl 言語が一番多いのか?→PHP、Cもあるのに (2)なぜ無料サーバーの多くが Perl 言語しか使えないのか? (3)処理の重い CGI を使うとサーバーがダウンするので使わないようにと  私の使っている無料サーバー(infoseek)でなっています。どの程度の  処理のことでしょうか? 上記の3つまたは1つでもアドバイスをして欲しいです。 回答をお待ちしています。

    • ベストアンサー
    • CGI
  • サブルーチン Perl みたいに C言語 で使うには 

    いままで数年HPを運営していたためにCGIを開発する手段として、Perl言語を使用してきました。その後、あるきっかけでC言語をするようになり、理屈上PerlとC言語が似ていました。 いままで、Perlでは開発・デバッグ等を効率よくするためサブルーチンを他のファイルにパッケージファイルとして開発していました。非常に便利でこれがC言語でも同じく使えたらいいなとつくづく思っています。 Perl言語の例 main.cgi(本体のファイル) package.pl(パッケージファイル) 本体ほファイルで実行させ、実行の途中必要なサブルーチンをパッケージファイルから呼び出します。 呼び出すには、 %渡す値=&パッケージ名::サブルーチン名; 同じようにC言語でやるときはどのようにすればいいのでしょうか?

専門家に質問してみよう