ZIVAエンジン(チャージ済み)の答え
今回は構造力学とは全く何の関係もありませんが,ZIVAエンジン(チャージ済み)の答えを計算するコードのお話です
これはDestinyというゲーム中に出てくる計算パズル問題の一つです(英語表記では"SIVA ENGINE")
計算方法
- 最初の数字から足したり引いたり倍にしたりして最終的に0になるように計算していきます
- "基礎蓄電器"は足す
- "基礎抵抗器"は引く
- "二重チャージ"はその数字を倍にし蓄電器なら足し,抵抗器なら引く
- "半チャージ"はその数字を半分にし蓄電器なら足し,抵抗器なら引く
siva engine solver.wxm
svに初期値を,evに終値をそれぞれ代入します(%o1, 2)
A列からE列までの数列を代入します(%o3〜7)
ここで抵抗器の値は−(負値)とし,各配列の最後で二重チャージの場合は"*2",半チャージの場合は"/2"とします
各列の要素の組み合わせを総当たりで計算し,合計が終値と一致する解を表示します(%t9〜18)
【maximaを実行する環境無いけどコードを動かしてみたい方向け】
CESGA - Maxima on lineでmaximaを実行できるので下記コードをコピペして"Clic"を押してください('A`)
"Start value" = sv : 340; "End value" = ev : 0; A : [580, 520, -640, -440]/2; B : [105, 90, -75, -85]*2; C : [120, 90, -130, -100]; D : [50, 70, -60, -80]; E : [30, 10, -20, -40]; N : length(A)$ for i : 1 thru N do for j : 1 thru N do for k : 1 thru N do for l : 1 thru N do for m : 1 thru N do if sv+A[i]+B[j]+C[k]+D[l]+E[m] = ev then ldisp([i, j, k, l, m])$