〓 Mathematica 四 〓
レス数が900を超えています。1000を超えると表示できなくなるよ。
0915Fらん受験生
2010/07/02(金) 00:31:33n = 10000
Clear[aa, bb, cc];
aa = IntegerDigits[n, 3];
k = Length[aa] + 1; bb = Table[0, {k}]; cc = bb; Do[
bb[[k - i]] = aa[[i]], {i, Length[aa]}]
Do[Which[bb[[i]] == 2, {bb[[i + 1]] += 1; bb[[i]] = -1},
bb[[i]] == 3, {bb[[i + 1]] += 1; bb[[i]] = 0}], {i, k}]
Do[cc[[k - i + 1]] = bb[[i]], {i, k}]
n=10000 のとき
{1, 1, 1, 2, 0, 1, 1, 0, 1}ーー>{1, -1, -1, -1, -1, 0, 1, 1, 0, 1}
になりますね。
>>914 さんの方法の初等的なやりかたですが、(頭のいい人はちがうなあああ)
これはAndre Weil の整数論初歩の練習問題(証明せよという形式)に出てきますね。
レス数が900を超えています。1000を超えると表示できなくなるよ。