• ベストアンサー

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

  • 正規表現で一桁の数字を二桁に置換する方法

    いつもお世話になっています。 yahoopipesでページからrssを作っています。 「2012/12/12」などとなっている数字をpubdateとしてソートしたのですが、一桁の月日の場合「2012/1/1」など二桁になっていないためか、うまく降順に並びません。 二桁の数字はそのままで、一桁の数字は頭に0をつけて二桁にする正規表現はどう書けばよいのでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • 「8桁の数字」を表現したい。

    要素の数が不定(決まっていない)なレコードから構成されるファイルを読みます。 そして1件目のレコードを取り出したいのです。 レコードは以下のような構成です。 頭に8桁の日付(20140602のような)が在り、各要素は英数字で全角半角ナンでも入っています。 ただ、要素は"<>"で区切られています。 例えば、 20140602<>552<>東京都あきる野市<>20140601<>電話03-442-8787<>87-3524<>19900401<>,,,,,,,, と続きます。 条件としては、 レコードの頭に8桁の日付が在りますが、要素の中には連続する8桁の数字は存在しません。 日付はまちまちですが、1900年以前はありませんので、「19000000<」と聞くことは可能です。 このファイルから1件目、 例で言えば、「20140602<>552<>東京都あきる野市<>」を取り出したいのです。 質問です。 instrで2件目の頭を見つけ、全体の長さからその位置を引いてやれば取り出せるかなと思いました。 instr(2,wka,8桁の数字)のように。 この「8桁の数字」をどう作る(指定する)かが分かりませんので、質問しています。 そのような表現は出来ないモノでしょうか。 もっといい方法が在ればそれに越したことはありません。 宜しくお教え下さい。

  • Excel97:3桁~5桁までのバラなコード(数字)、前ゼロ埋めで6桁にしたい時は?

    標題どおりです。 現在、「156」とか「70018」とか、3桁から5桁までの数字のコードが200件あります。 それを、「000156」、「070018」と、本来のコードの前にゼロを置き、6桁に揃えたいんです。 手入力だと面倒な作業になるため、なんとか簡単に表示形式で設定できないものかと思い質問してみました。 マクロはまったくの素人なので、関数や表示形式で教えて下さい。 よろしくお願い致します。

  • 整数の表現について

    もし、数字が整数だった場合はこのA処理を もし、数字が小数点を含む数字だった場合はB処理をというようなIF文を作りたいのですが”整数” ”小数点” をどのように表現するのか解りません。 どうか教えて頂けないでしょうか。 又、違う表現等があった場合もあるのでしょうかお願します。

  • 正規表現で半角数字1桁のみを全角数字に変換

    お世話になります。 JavaScript(JSP)で、 正規表現で半角数字1桁のみ(2桁以上は変換しない)を、 全角数字に変換する方法を教えてください。 たとえば、 ”hoge3hoge5”文字列内の、 半角数字1桁のみを、 正規表現で、全角数字1桁に、それぞれ変換   ↓ ”hoge3hoge5” あわせて、 半角数字が2桁以上、連続で続いている場合には 変換せずに、半角数字のままにしておきたいです。 ”hoge33hoge5”    ↓ 正規表現で、半角数字1桁のみを、全角数字1桁に変換 (半角数字2桁以上は変換しない) ”hoge33hoge5” 以上になります。 もしご存じの方がいらっしゃいましたら、 よろしくお願いします。

  • InDesign 正規表現 一桁の数字

    5(20.0%) 0(0.0%) 10(40.0%) こんな感じで一桁と二桁の数字が混じっている文字列の 一桁の数字の前に数字のスペースをつけて桁揃えしたいです 検索: (?<=[^\d\.])(\d)(?=\D) 置換: ~/$1 こんな感じで書いたんですがこれでは 文字列の一番最初のものが引っかかりません 「行頭または数字かドット以外に続く」 というのを表現できればいいのですが いろいろ試してもうまくいきません どう書けばいいのでしょうか

  • Cygwinの正規表現

    こんにちは、いつもお世話になっております。 タイトルの通りなのですが、 連続する0~9の数字が3桁と4桁の行が 入り混じっているテキストに対して、 3桁のもののみをgrepしたいのですが、 上手く行きません。 この場合の正規表現はどのようにすれば 良いでしょうか? ちょっと稚拙かも知れませんが、 1時間ぐらい錯綜しています。 何卒よろしくお願いします。

  • エクセルでの5ケタの数字の計算がわかりません。。

    いつもお世話になりますm(_ _)m エクセルを最近使い始めた初心者です。 5ケタの数字の和を求めるエクセルの うまい使い方や計算式などありますでしょうか?  例)12345 の場合、    1+2+3+4+5=15    のように、5ケタの数字をひとケタづつ分離し、    分離後の5つの数字の和を求めたいと思っているのですが、、 どなたか知識を分けていただけたらと思います。 よろしくお願い致します!!

  • 8桁整数を限りなく短い文字列にしたい!!

    0~99999999の正の整数を0-9の数字とa~zのアルファベット(大文字小文字区別なし)で表現したいと思います。 私が考え付いたのが単純に36進数にした場合で六桁なのですが、 これ以上に短くなる方法をご存知の方、教えていただけないでしょうか。 よろしくお願いします。

  • C言語でπを2万桁まで計算するには

    C言語でπの値を2万桁まで(2万という数字に特に意味はないですが大きい桁)をマーチンの公式を用いて計算したいのです。 マーチンの公式によるπの求め方は 16×アークタンジェント(1/5) - 4×アークタンジェント(1/239) ということは分かったのですが double型の変数を使っても扱える桁数はたかがしれているので どのようにすればアークタンジェント(1/5)などの値を C言語のプログラムで大きい桁まで求めることができるのでしょうか。 また何かうまい具合に計算できるアルゴリズムなどがありましたら 教えてください。 詳しい方いましたら、よろしくお願いします。 もしよければ参考プログラムなども 貼り付けていただけたら幸いです。