Successfully reported this slideshow.
Your SlideShare is downloading. ×

コンピュータで全く使われない数表現

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 43 Ad

コンピュータで全く使われない数表現

Download to read offline

第4回 プログラマのための数学勉強会
の発表資料です。
(改定前タイトル: コンピュータにおける数表現)

第4回 プログラマのための数学勉強会
の発表資料です。
(改定前タイトル: コンピュータにおける数表現)

Advertisement
Advertisement

More Related Content

Slideshows for you (18)

Similar to コンピュータで全く使われない数表現 (20)

Advertisement

More from Yu(u)ki IWABUCHI (16)

Recently uploaded (20)

Advertisement

コンピュータで全く使われない数表現

  1. 1. コンピュータにお ける数表現 面白法人カヤック   岩淵勇樹
  2. 2. コンピュータにお ける数表現 面白法人カヤック   岩淵勇樹
  3. 3. 自己紹介 • 岩淵勇樹  (  IWABUCHI  Yu(u)ki  )   •  金沢大学自然科学研究科修了   •  博士(工学)   •  面白法人カヤック HTMLファイ部・人事部   •  卒研で記数法を研究
  4. 4. アウトライン • 繰り上がり則と記数法   • 2進法   • φ進法   • フィボナッチ記数法   • 自然数より広い記数   • -­‐2進法   • 1+i進法   • 物智数  
  5. 5. 繰り上がり則と記数法 2進法、φ進法、フィボナッチ記数法
  6. 6. よく使われる記数法 • 位取り記数法(N進法)   • 人間は10進法、   コンピューターは2進法   • 2進数と親和性の高い   8進数や16進数もよく使われる
  7. 7. 2進法 •  基数が2の位取り記数法   •  桁の重みは2n   8 4 2 1 0 0 0 0 0 0 0 0 1 1 0 0 1 0 2 0 0 1 1 3 0 1 0 0 4 0 1 0 1 5 0 1 1 0 6 0 1 1 1 7 8 4 2 1 1 0 0 0 8 1 0 0 1 9 1 0 1 0 10 1 0 1 1 11 1 1 0 0 12 1 1 0 1 13 1 1 1 0 14 1 1 1 1 15
  8. 8. 2進数の足し算 1 1 +
  9. 9. 繰り上がり 1 1 0 1 +
  10. 10. 2を左に 0 1 2 ↓
  11. 11. 2進数の足し算(例) 0 1 1 2 + 1 1 1 1 1 0 2 → 1 0 0 → 1
  12. 12. 繰り上がり則だけで足し算 • 2以上の値がある部分に、   繰り上がりのルールだけ適用すれば   どんな足し算もできる   • 初期値を10進数として適用すれば、   基数変換もできる
  13. 13. Excelで実演(1) 繰り上がり則を適用する   一番左のセル   (2以上の数の左のセル)   を選択して   「形式を選択してペースト」 繰り上がり則   1,  -­‐2   を入力     計算したい数値を入力   (ex)  1,  2,  1)
  14. 14. Excelで実演(2) 「演算」を   「加算」に設定して   「OK」
  15. 15. Excelで実演(3) 適用したいセルに次々に   「繰り返し」(Ctrl  +  Y) 対象が   0と1だけの行になったら計算完了!
  16. 16. φ進法(黄金進法) •  基数がφ(黄金比)の位取り記数法   •  桁の重みはφn   φ4 φ3 φ2 φ1 φ0 φ-­‐1 φ-­‐2 φ-­‐3 φ-­‐4 0 0 0 0 0 0 0 0 0 0   0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 1 0 0 2 0 0 1 0 0 0 1 0 0 3 0 0 1 0 1 0 1 0 0 4 0 1 0 0 0 1 0 0 1 5 0 1 0 1 0 0 0 0 1 6 1 0 0 0 0 0 0 0 1 7 1 0 0 0 1 0 0 0 1 8 1 0 0 1 0 0 1 0 1 9 1 0 1 0 0 0 1 0 1 10 φ = 5 +1 2
  17. 17. 1の連続は禁止 • φn=φn-­‐1+φn-­‐2   • ex)  n=2のとき   5 +1 2 ! " # $ % & 2 = 5 +1 2 +1 1 1 0 0 1 → φn φn-­‐1 φn-­‐2
  18. 18. φ進法の繰り上がり則 •  φ進法では左に1繰り上がり、   右に2繰り下がる 1 1 0 1 + 0 1 . (2φn=φn+1+φn-­‐2)
  19. 19. 繰り上がりの秘密 •  φn+φn=φn+(φn-­‐1+φn-­‐2)    =(φn+φn-­‐1)+φn-­‐2   =φn+1+φn-­‐2 2 1 0 1 0 1 1 1 → →
  20. 20. 繰り上がり則だけで足し算 •  2の左1、右2の繰り上がりと、   1の連続での繰り上がりだけを適用すれば   どんな足し算もできる   •  初期値を10進数として適用すれば、基数変 換もできる
  21. 21. Excelで実演(1) 繰り上がり則を適用する   一番左のセル   (2以上の数の左のセル)   を選択して   「形式を選択してペースト」 繰り上がり則   1,  -­‐2,  0  1   を入力     計算したい数値を入力   (ex)  1,  2,  2,  1)
  22. 22. Excelで実演(2) 「演算」を   「加算」に設定して   「OK」
  23. 23. Excelで実演(3) 適用したいセルに次々に   「繰り返し」(Ctrl  +  Y) 対象が   1が連続しない   0と1だけの行になったら計算完了! 0,1,1のパターンを   1,0,0に書き換え
  24. 24. フィボナッチ数 • F0  =  1   • F1  =  2   • Fn  =  Fn-­‐1  +  Fn-­‐2   •  フィボナッチ数を数列として書き下すと   1,  2,  3,  5,  8,  13,  21,  34,  55,  89,  144,  …  
  25. 25. フィボナッチ記数法 •  桁の重みはFn   8 5 3 2 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 2 0 0 1 0 0 3 0 0 1 0 1 4 0 1 0 0 0 5 0 1 0 0 1 6 8 5 3 2 1 0 1 0 1 0 7 1 0 0 0 0 8 1 0 0 0 1 9 1 0 0 1 0 10 1 0 1 0 0 11 1 0 1 0 1 12
  26. 26. フィボナッチ記数法のルール • 桁の値(digit)は0か1   • 1が連続してはならない   (=11が禁止語)  
  27. 27. ゼッケンドルフの定理 • 自然数は、連続するフィボナッチ 数を含まないような形で、相異な る1つ以上のフィボナッチ数の和と して一意に表現できる   (つまり、フィボナッチ記数法の    書き方ができる)
  28. 28. 1の連続は禁止 • Fn=Fn-­‐1+Fn-­‐2   (定義より明らか)   1 1 0 0 1 → Fn Fn-­‐1 Fn-­‐2
  29. 29. フィボナッチ記数法の繰り上がり則 •  フィボナッチ記数法では左に1繰り上がり、   右に2繰り下がる   •  ただし、下2桁(2F1と2F0)だけ特殊 1 1 0 1 + 0 1 0 0 0 0 1 1 0 1 + 1 0 0 1 1 0 1 + (2Fn=Fn+1+Fn-­‐2) (2F1=F2+F0) (2F0=F1) = = = = = 2 3 1 1 2
  30. 30. 自然数より広い記数 -­‐2進数、1+i進数
  31. 31. -­‐2進法 •  基数が-­‐2の位取り記数法   •  桁の重みは(-­‐2)n   •  整数全体を表現できる   16 -­‐8 4 -­‐2 1 0 1 0 0 0 -­‐8 0 1 0 0 1 -­‐7 0 1 1 1 0 -­‐6 0 1 1 1 1 -­‐5 0 1 1 0 0 -­‐4 0 1 1 0 1 -­‐3 0 0 0 1 0 -­‐2 0 0 0 1 1 -­‐1 16 -­‐8 4 -­‐2 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 2 0 0 1 1 1 3 0 0 1 0 0 4 0 0 1 0 1 5 1 1 0 1 0 6 1 1 0 1 1 7
  32. 32. -­‐1+i進法 • D.  Knuth  (TeXの生みの親)が考案   • 複素整数を記述可能   • 基数が複素数
  33. 33. 1+i進法 • 2進数の2を(1+i)に読み替える (1+i)2 1+i 1 0 0 0 0 0 0 1 1 0 1 0 1+i 0 1 1 2+i 1 0 0 2i 1 0 1 1+2i 1 1 0 1+3i 1 1 1 2+3i
  34. 34. ツインドラゴン
  35. 35. 物智数 完全オリジナルの記数法
  36. 36. 記数法の拡張 •  位取り記数法(N進法)の、Nの部分を拡張   →負数や複素数も表現可能に   •  記数法により、繰り上がり則も違う   →もっと変わった繰り上がり則はないか?   •  数は一直線に並ぶ(ex)  10101110)   →並び方を拡張できないか??  
  37. 37. 物智数の繰り上がり則 1 1 0 1 + 1 =
  38. 38. 物智数 1 0 0 1 1 0 0 1 1 1 0 0 1 0 0 0 1 1 1 0 0 1 0 1 0 1 1 1 0 1 1 1 0 0 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 左と上に繰り上がり 0 1 1 1 0 1 1 1 1 0 1 1 12=   3=   4=   5=   6=   7=   8=   0 1 1 0
  39. 39. 大きい数だと 気になる方はこちらで!   hTp://butchi.jp/documents/planar_binary/ ? 1000=
  40. 40. 物智数の謎 • 基数はp+q=2となる何らかのpとq   →1,  1かもしれないし、    2,  0    かもしれないし、    1+x,  1-­‐xかもしれない     • 複素数よりもっと広い、何かを表 せるに違いない!!
  41. 41. まとめ •  繰り上がりに着目して計算ができる   (2進法、φ進法、フィボナッチ記数法)   •  桁の重みの拡張により整数や複素数などまで表現できる   (-­‐2進法、1+i進法)   •  繰り上がり方向を2方向にして新しい記数法を作れる   (物智数)  
  42. 42. 問題集
  43. 43. 解答 問1    1)  1010    2)  111111  3)  1111000   問2    1)  1001    2)  1101    3)  11101   問3    1)    1000.1001  2)  10100.0101  3)  100101.001001   問4    1)    1000.1001  2)  10000.01  3)  1000000.01   問5    1)    10001    2)  100000  3)  1010001   問6    1)    1000    2)  100000  3)  1000000   問7    1)      2)    3)       問8    1)      2)    3)   0 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0 0 1 1 0 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 0 1 0 1 1 1 0 0 1 0 0 0 1 1 1 0 1 1 1 1 0 1 1 1 0 0 1 0 0

×