• 締切済み

位取り

こんにちは 下記の数字の法則を探しているのですが、 どなたか分かる人いますか? よろしくお願いします 入力ーーーーー出力 0ーーーーーー00.000 1ーーーーーー00.001 2ーーーーーー00.002 7ーーーーーー00.007 8ーーーーーー00.010 16ーーーーー00.020 32ーーーーー00.040 40ーーーーー00.100 80ーーーーー00.200 360ーーーー00.900 400ーーーー01.000 2400ーーー06.000 2800ーーー10.000 11200ーー40.000 13999ーー46.947 14000ーー100.000

みんなの回答

回答No.1

一応、入力と出力に対応する法則が分かったので説明します。 入力は10進数と仮定します。そうすると入出力対応表の最後の2行で、 入力が1つ増えたのに対して出力は位が一つ上がっています。 こうなるには後ろから2行目の46.947の各桁の数値が各々、 位の上がる直前の数でなければなりません。そうすると・・・ 小数点以下第3位は、8進数、 小数点以下第2位は、5進数、 小数点以下第1位は、10進数、 一の位は、7進数、 十の位は、5進数、 ということになります。 出力は小数点も付いていますので、入力から出力を導き出すには・・・ 入力  を 上記の進数で変換 ÷ 1000 = 出力 という式が成り立ちそうです。 この段階では、まだ仮説なので他の入出力結果でも計算して比べてみましょう。 例えば11200の場合、 11200を一番下位の位である8進数の8で割ります。 11200 ÷ 8 = 1400 余り 0 (a) 今度は答えの1400を二番目に下位の位である5進数の5で割ります。 1400 ÷ 5 = 280 余り 0 (b) 今度は答えの280を三番目に下位の位である10進数の10で割ります。 280 ÷ 10 = 28 余り 0 (c) 今度は答えの28を四番目に下位の位である7進数の7で割ります。 28 ÷ 7 = 4 余り 0 (d) 商である4が五番目に下位の位である5進数の5より小さいので計算はここで終わりです。 仮説で立てた進数のルールで変換した答えは、 最後の商から、余り(d)、余り(c)、余り(b)、余り(a)を順番に並べたもの、即ち、 40000 になります。 これを、最後に1000で割って 40.000 これで出力と一致しました。 他のも幾つか同じように計算してみましたが出力と一致しましたので、 このルールでよいと思います。

hirona111
質問者

お礼

こんにちは。 とても分かりやすくて助かりました。 どうもありがとうございました。

関連するQ&A