投稿

N88-BASIC,Cでハノイの塔 (3回目)

イメージ
2024/ 12 /29 (日 ) N88-BASIC ,C で ハノイの塔  ( 3 回目 )   途中経過表示を省略 (hanoi)   ■ 前提 ▼ 参照 https://ulprojectmail.blogspot.com/2024/12/n88-basicchanoi-2.html N88-BASIC ,C で ハノイの塔  ( 2 回目 ) (前回)   h以上の円盤の移動のみ表示するよう追加変更しました   ■   動作 変数名など内部では A,B,Cを(pole)1,2,3または0,1,2と表現しています   n,hを入力し 1:A->Cの様に円盤の番号1~n(小~大)と棒A,B,C間の移動を表示する 今回の手順は再帰を使用していません h以上の円盤の移動のみ表示     VL,NL,XL-BASICとdlg~.zip( han 00 3 .bas)は このブログ (以下のリンク)から ダウンロードできます https://ulprojectmail.blogspot.com Readme.txtを読んで遊んで下さい

N88-BASIC,Cでハノイの塔 (2回目)

イメージ
2024/ 12 / 27 (金 ) N88-BASIC ,C で ハノイの塔  ( 2 回目 )   再帰を使用しない手順 (hanoi)   ■ 前提 ▼ 参照 https://ulprojectmail.blogspot.com/2024/12/hanoi-3.html ハノイの塔   ( 3 回目 ) より   ▼   前提 3本(A,B,C)の棒とn枚の円盤(小さい順に1~nとする)がある Aに1~nの円盤が上から順に積まれている   ▼   目標 1~nの円盤全てをCに移動させる   ▼   ルール 小さい円盤の上に大きい円盤は置けない 1度に動かせる円盤は1枚のみ   ▼   定義 A,B,Cの一番上の円盤をpA, pB, pCとし、円盤が無い時は最大値とする 円盤を AからCに移動する事をA->Cと書くことにする   ▼   nの場合 nが奇数の時   A = Aのtop, pB = Bのtop, pC = Cのtop   pAB = A->B, pBC = B->C, pCA = C->A   pBA = B->A, pCB = C->B, pAC = A->C nが偶数の時(A⇔B)   pA = Bのtop, pB = Bのtop, pC = Cのtop   pAB = B->A, pBC = A->C, pCA = C->B   pBA = A->B, pCB = C->A, pAC = B->C と定義する つまり以下偶数の時は (A⇔B)と読み替える   nが偶数の時のみ以下の2行を追加   pBA   pB < pC なら pBC 違うなら pCB   pAC pA ≠ pBの間以下を繰り返す   pA < pB なら pAB 違うなら pBA   pCB   pC < pA なら pCA 違うなら pAC   pBA   pB < pC なら pBC 違うなら pCB   pAC   ▼   移動回数 N(n) N(n) = 2 n  - 1 回 ...

ハノイの塔 (3回目)

2024/ 8 / 21 (土 ) ハノイの塔  ( 3 回目 )   再帰を使用しない手順 (偶数奇数をまとめる) ( hanoi )   ■ 定義 ▼   前提 3本(A,B,C)の棒とn枚の円盤(小さい順に1~nとする)がある Aに1~nの円盤が上から順に積まれている   ▼   目標 1~nの円盤全てをCに移動させる   ▼   ルール 小さい円盤の上に大きい円盤は置けない 1度に動かせる円盤は1枚のみ   A,B,Cの一番上の円盤をpA, pB, pCとし、円盤が無い時は最大値とする   円盤 1をAからCに移動する事を1:A->C と書く事にする     ■ 具体的な動かし方 ▼   nが奇数の場合 A->C pA ≠ pBの間以下を繰り返す   pA < pB なら A->B 違うなら B->A   C->B   pC < pA なら C->A 違うなら A->C   B->A   pB < pC なら B->C 違うなら C->B   A->C   ▼   nが偶数の場合 nが奇数の場合に2行追加しAとBを入れ替える A->B 追加 pA < pC なら A->C 違うなら C->A 追加 B->C pA ≠ pBの間以下を繰り返す   pB < pA なら B->A 違うなら A->B   C->A   pC < pB なら C->B 違うなら B->C   A->B   pA < pC なら A->C 違うなら C->A   B->C     ■ 奇数偶数をまとめる nが奇数の時   A = Aのtop, pB = Bのtop, pC = Cのtop   pAB = A->B, pBC = B->C, pCA = C->A   pBA = B->A, pCB = C->B, pAC = A->C nが偶数の時(A⇔B) ...

ハノイの塔 (2回目)

2024/12/18(水) ハノイの塔 (2回目)   再帰を使用しない手順(偶数奇数別)(hanoi)   ■ 定義 ▼ 前提 3本(A,B,C)の棒とn枚の円盤(小さい順に1~nとする)がある Aに1~nの円盤が上から順に積まれている   ▼ 目標 1~nの円盤全てをCに移動させる   ▼ ルール 小さい円盤の上に大きい円盤は置けない 1度に動かせる円盤は1枚のみ   A,B,Cの一番上の円盤をpA, pB, pCとし、円盤が無い時は最大値とする   円盤1をAからCに移動する事を1:A->C 棒を0 円盤を1 222 33333 … と書く事にする     ■ 具体的な動かし方 ▼ nが奇数の場合 A->C pA ≠ pBの間以下を繰り返す  pA < pB なら A->B 違うなら B->A  C->B  pC < pA なら C->A 違うなら A->C  B->A  pB < pC なら B->C 違うなら C->B  A->C   n = 1のとき 1:A->C check   n = 3のとき                                    1:A->C check 2:A->B 1:C->B 3:A->C  1:B->A 2:B->C 1:A->C check   n = 5のとき                  ...

N88-BASIC,Cでハノイの塔 (1回目)

イメージ
2024/ 8 / 10 ( 火 ) N88-BASIC ,C で ハノイの塔  ( 1 回目 )   再帰を使用した手順 (hanoi)   ■ 前提 ▼ 参照 https://ulprojectmail.blogspot.com/2024/12/hanoi-1.html ハノイの塔   ( 1 回目 ) より   ▼   ルール 3本(A,B,C)の棒とn枚の円盤(小さい順に1~nとする)がある Aに1~nの円盤が上から順に積まれている 小さい円盤の上に大きい円盤は置けない 1度に動かせる円盤は1枚のみ   ▼   目標 1~nの円盤全てをCに移動させる   ▼   nの時の手順 1~n-1の円盤をA->B nの円盤をA->C 1~n-1の円盤をB->C   以上の手順で完成する   ▼   移動回数 N(n) N(n) = 2 n  - 1 回   ▼  n = 64の移動時間T(64) N(64) = 2 64  - 1 = 18,446,744,073,709,551,615回   グレゴリオ暦 (現在の使用されている暦)の1年は365.2425日 3600×24×365.2425 = 31,556,952秒/年(グレゴリオ暦)   α = 18,446,744,073,709,551,615回 / 31,556,952秒/年 = 18,446,744,073,709,551,615 / 31,556,952 年 /(秒/回) = 584,554,049,253.855429859005… 年/(秒/回)   n移動する時間をT(n)とすると T(64) = T(n)/N(n) (秒/回) × α 年 /(秒/回) = αT(n)/N(n) (年)     ■ 動作 変数名などは A,B,Cを(pole)1,2,3と表現しています   nを入力し 1:A->Cの様に円盤の番号1~n(小~大)と棒A,B,C間の移動を表示する 今回の手順は再帰を使用しています     VL,NL,XL-BAS...

ハノイの塔 (1回目)

2024/ 12 / 4 ( 水 ) ハノイの塔  ( 1 回目 )   再帰を使った手順 ( hanoi )   ■ 定義 ▼   前提 3本(A,B,C)の棒とn枚の円盤(小さい順に1~nとする)がある Aに1~nの円盤が上から順に積まれている   ▼   目標 1~nの円盤全てをCに移動させる   ▼   ルール 小さい円盤の上に大きい円盤は置けない 1度に動かせる円盤は1枚のみ   ■ 例 ▼   定義 円盤 1をAからCに移動する事を1:A->C 棒を 0 円盤を 1 222 33333 … と書く事にする   ▼   n = 1の時 A B C A B C 1 0 0 0 0 1 1:A->C 1回移動   ▼   n = 2の時  A   B   C     A   B   C     A   B   C     A   B   C  1   0   0     0   0   0     0   0   0     0   0   1 222  0   0    222  1   0     0   1  222    0   0  222 1:A->B 2:A->C 1:B->C 3回移動   ▼   n = 3の時   A   ...

N88-BASICで特殊相対性理論(relativity) (2回目)

イメージ
2024/ 11 / 24 ( 日 ) N88-BASICで 特殊相対性理論 ( 2 回目 )   ( special relativity )   https://ulprojectmail.blogspot.com/2024/11/relativity-2.html 特殊相対性理論 ( 2 回目 ) より   合成速度 v' = (v A  + v B ) / {1 + (v A v B /c 2 )}   v A   =  v B  = vに対する合成速度 v' をグラフ表示します     VL,NL,XL-BASICとdlg~.zip(sprela00 2 .bas)は このブログ (以下のリンク)から ダウンロードできます https://ulprojectmail.blogspot.com Readme.txtを読んで遊んで下さい