924 :名無し象は鼻がウナギだ!:2011/08/15(月) 15:33:53.54 0
>読み手にとってはもはや展開分類法的な法則性を見出すことは不可能だし、 
そうでもないんじゃない? 
たとえば数字とか、そのままみてもわからないけど、素因数分解すると別の数字(素数)が現れる。 
ということは、コードを素数にして、掛け算してしてしまえば、一瞬で素因数分解できるなら何が合成されているかわかる。 
まあ普通はデカイ数字だとテーブル持っていなくて時間が掛かるから、それが暗号として使われている訳だけども。 

言語学板の人工言語スレの流れから思いついた記数法のメモ。
通常の数とは一対一に対応し、分類は無限のバリエーションが得られる。
先のスレの言語の変換関数として使う。桁がかなりバラけるので扱いにくい。
暗算するには実用上6桁ぐらいの掛け算および素因数分解と、数十項の数表の暗記が必要。
なんか他のことに使えるかもしれんねぇ。

この方法で数を変換すると下の表のようになる
変換前 0 1 2 10 3 11 4 100 20 12 5 102 6 13 ... 999 ...
変換後 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ... 141703 ...

まず、素数に順に番号をふっておく。
素数 2 3 5 7 11 13 17 19 23 29 ...
番号 1 2 3 4 5 6 7 8 9 10 ...

符号法

  1. 元の分類を用意する
    • たとえば334
  2. 一番左の数が番号となるような素数を上の表から探し出す
    • 334→5
  3. 次の数については、自身とそれより左の桁の数すべてを足した数が番号となるような素数を探しだす
    • 334→5、13
  4. 以下同様に探し、得た全ての数をかける
    • 334→5*13*29=1885
この1885を適当な方法で文字に変換すればよい。
たとえば、子音21母音5、音節構造(C)Vの言語なら、この数を(21+1)*5=110進数に直す
  • 1855→(16,95)
別途用意した音節-数の変換表から16,95に対応する音節を探し、これを並べたものを単語とすればよい。

復号法

  1. 元に戻したい数を用意する
    • たとえば2000
  2. 素因数分解する
    • 2000=2^3*5^3
  3. 一番小さい素因数に対応する数を上の表に照らして探し出し、一番左の桁として書く
    • 2^3*5^3→1
  4. 次に小さい素因数に対応する数からさっきの素因数に対応する数を引いて書く
    • 2^3*5^3→10
  5. 4を繰り返して元の数が得られる
    • 2000→100200

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2011年08月15日 21:00