• ベストアンサー

6桁~8桁の整数を2桁で表現する方法について

いつも大変お世話になっております。 何卒よろしくお願い致します。 標題の件になります。 例えば、 1000000(7桁) という数字と 888888(6桁) という数字があります。 このそれぞれの値を、100以内で表現するには(2桁)どのような 公式を用いればよろしいでしょうか。 お手数をお掛けしますが、何卒よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • sanori
  • ベストアンサー率48% (5664/11798)
回答No.4

こんにちは。 もっともまともな方法として、N進法で表すことを考えます。 2桁以内で表すのですから、 √1000000 = 1000 つまり、1001進法以上にする必要があり、そのためには、1001種類以上の文字種が必要になります。 それほどの文字種となると、漢字を使うのが適当と思います。 たとえば、JISのコード順に、0,1,2,3・・・1001を漢字に当てはめる、とかです。 イメージとしては、 1000000 → 鯵頭 888888  → 麿軋 みたいな感じで。 あと、 1000000 や 888888 のように単純な規則性がある数字列であるならば、 データ圧縮の考え方が使えるかもしれませんね。 たとえば「0が6個連続」を「鮨」と表すとか、「8だけ6個」を「殉」と表すとかです。 以上、ご参考になりましたら。

その他の回答 (4)

  • arrysthmia
  • ベストアンサー率38% (442/1154)
回答No.5

> 最終的なアウトプットは10進の2桁で表現したいです。 2桁の十進数は、90個しかありません。 これで6~8桁の十進数を表すには、表す対象となる6~8桁の数を、 あらかじめ90個以内に限定しておかなくてはなりません。 たとえば、対象を 3 個に限定して、 888888 が 1 番、1000000 が 2 番、33333333 が 3 番と決めておけば、 888888 も、1000000 も、1桁の番号で表せます。 電話帳のようなものが、必要になりますね。

  • SortaNerd
  • ベストアンサー率43% (1185/2748)
回答No.3

質問の意味が分からないため回答不能です。 6桁~8桁の整数を2桁に割り当てる方法はいくらでも存在します。 10000進数を使うのも一つの方法ですし、10進数を使うにしても例えば100で割ったあまりをとる方法や、1000000で割った値をとる方法が考えられます。 どういう基準で割り当てたらよいのかが分からないと考えようがありません。 元の数字の大小関係を保持した方がいいのか、10進数しか使ってはいけないのかなど、情報が不足しています。

uff-n
質問者

お礼

ご回答いただき、誠にありがとうございます。 元の数字の大小関係は保持したいです。 また、最終的なアウトプットは10進の2桁で表現したいです。 ありがとうございます。 お手数をお掛けしますが、あともう少し教えていただきたくお願い申し上げます。 何卒よろしくお願い致します。

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.2

たとえば、15という数を一桁であらわすには・・ 16進数だと、Fですね。Windowsのアクセサリにある電卓で確認してください。 そのように、何進数で表すかによって、桁数は低く抑えることが出来ます。 それでは大変なので、さらに何進数かを示すために、それをさらに小さい何進数かで表す #2の例で行くと 11110100001001000000と20桁なるので、10桁ずつに分けると、 1111010000 1001000000 さらに 11110 10000  10010 00000 とすれば・・

uff-n
質問者

お礼

なるほど。 すみません。ちょっと当方数学が弱いので、 幼稚な質問をしてしまうのですが、 #2の例ですが、元の大小関係は保持されているで よろしいでしょうか。 また、 11110 10000  10010 00000 場合 31*4=124 になってしまい、3桁になってしまうと思いますが、 さらに細分するということになりますでしょうか。 お手数をお掛けしますが、何卒よろしくお願い申し上げます。

  • Trick_Q
  • ベストアンサー率45% (34/75)
回答No.1

常用対数を取ると、 Log1000000=6[B] [B]は、単位のベル でも、888888これは、 Log888888=5.9488… となってしまうので、まずいですかねぇ? 10進数じゃなくて、もっと大きなn進数なら確実ですが、 桁が大きいので大変そうです。 1000000を二進数であらわすと、 11110100001001000000と20桁なるので、10桁ずつに分けると、 1111010000 1001000000 そうすると、1024進数でちょうど2桁であらわせますね。 しかし、1024種類の記号を作らないといけないので、大変です。

uff-n
質問者

お礼

ご回答いただきまして誠にありがとうございます。 感謝しております! アウトプットには、整数で表現したいです。 申し遅れました。

関連するQ&A