コンピュータで全く使われない数表現
-
Upload
yuuki-iwabuchi -
Category
Science
-
view
368 -
download
1
Transcript of コンピュータで全く使われない数表現
コンピュータにおける数表現面白法人カヤック岩淵勇樹
コンピュータにおける数表現
コンピュータで
全く使われない数表現
面白法人カヤック岩淵勇樹
自己紹介•岩淵勇樹 ( IWABUCHI Yu(u)ki )
• 金沢大学自然科学研究科修了• 博士(工学)• 面白法人カヤック HTML ファイ部・人事部
• 卒研で記数法を研究
アウトライン•繰り上がり則と記数法• 2 進法• φ 進法•フィボナッチ記数法•自然数より広い記数• -2 進法• 1+i 進法•物智数
繰り上がり則と記数法2 進法、 φ 進法、フィボナッチ記数法
よく使われる記数法•位取り記数法( N 進法)•人間は 10 進法、
コンピューターは 2 進法•2 進数と親和性の高い
8 進数や 16 進数もよく使われる
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
2 進数の足し算
1
1+
繰り上がり
1
1
01
+
2 を左に
01
2
↓
2 進数の足し算(例)
0112
+ 111
1102→100→ 1
繰り上がり則だけで足し算• 2 以上の値がある部分に、
繰り上がりのルールだけ適用すればどんな足し算もできる•初期値を 10 進数として適用すれば、
基数変換もできる
Excel で実演 (1)
繰り上がり則を適用する一番左のセル( 2 以上の数の左のセル)を選択して「形式を選択してペースト」
繰り上がり則1, -2を入力
計算したい数値を入力( ex) 1, 2, 1 )
Excel で実演 (2)
「演算」を「加算」に設定して「 OK 」
Excel で実演 (3)
適用したいセルに次々に「繰り返し」( Ctrl + Y )
対象が0 と 1 だけの行になったら計算完了!
φ 進法(黄金進法)• 基数が φ (黄金比)の位取り記数法• 桁の重みは φ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
1 の連続は禁止•φn=φn-1+φn-2
• ex) n=2 のとき1 1
001→φn φn-1 φn-2
φ 進法の繰り上がり則• φ 進法では左に 1 繰り上がり、
右に 2 繰り下がる
1101
+0 1.
(2φn=φn+1+φn-2)
繰り上がりの秘密• φn+φn=φn+(φn-1+φn-2)
=(φn+φn-
1)+φn-2
=φn+1+φn-22
1
01 0 1
1 1→
→
繰り上がり則だけで足し算
• 2 の左 1 、右 2 の繰り上がりと、1 の連続での繰り上がりだけを適用すればどんな足し算もできる• 初期値を 10 進数として適用すれば、基数変
換もできる
Excel で実演 (1)
繰り上がり則を適用する一番左のセル( 2 以上の数の左のセル)を選択して「形式を選択してペースト」
繰り上がり則1, -2, 0 1を入力
計算したい数値を入力( ex) 1, 2, 2, 1 )
Excel で実演 (2)
「演算」を「加算」に設定して「 OK 」
Excel で実演 (3)適用したいセルに次々に「繰り返し」( Ctrl + Y )
対象が1 が連続しない0 と 1 だけの行になったら計算完了!
0,1,1 のパターンを1,0,0 に書き換え
フィボナッチ数• F0 = 1
• F1 = 2
• Fn = Fn-1 + Fn-2
• フィボナッチ数を数列として書き下すと1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, …
フィボナッチ記数法• 桁の重みは 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
フィボナッチ記数法のルール•桁の値 (digit) は 0 か 1•1 が連続してはならない
( =11 が禁止語)
ゼッケンドルフの定理•自然数は、連続するフィボナッチ
数を含まないような形で、相異なる 1 つ以上のフィボナッチ数の和として一意に表現できる
(つまり、フィボナッチ記数法の 書き方ができる)
1 の連続は禁止• Fn=Fn-1+Fn-2
(定義より明らか)
1 1
001→Fn Fn-1 Fn-2
フィボナッチ記数法の繰り上がり則
• フィボナッチ記数法では左に 1 繰り上がり、右に 2 繰り下がる
• ただし、下 2 桁 (2F1 と 2F0) だけ特殊
1
1
01
+
0 1
0
0
0
0
1
1
01
+
1
0
0
1
1
01
+
(2Fn=Fn+1+Fn-2) (2F1=F2+F0) (2F0=F1)= = = = =
2 3 1 1 2
自然数より広い記数-2 進数、 1+i 進数
-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
-1+i 進法•D. Knuth (TeX の生みの親 ) が考案•複素整数を記述可能•基数が複素数
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
ツインドラゴン
物智数完全オリジナルの記数法
記数法の拡張• 位取り記数法( N 進法)の、 N の部分を拡張
→負数や複素数も表現可能に
• 記数法により、繰り上がり則も違う→もっと変わった繰り上がり則はないか?
• 数は一直線に並ぶ( ex) 10101110 )→並び方を拡張できないか??
物智数の繰り上がり則
1 1 01+1
=
物智数
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
大きい数だと
気になる方はこちらで!http://butchi.jp/documents/planar_binary/
?1000=
物智数の謎•基数は p+q=2 となる何らかの p と
q→1, 1 かもしれないし、 2, 0 かもしれないし、 1+x, 1-x かもしれない
•複素数よりもっと広い、何かを表せるに違いない!!
まとめ• 繰り上がりに着目して計算ができる
( 2 進法、 φ 進法、フィボナッチ記数法)
• 桁の重みの拡張により整数や複素数などまで表現できる( -2 進法、 1+i 進法)
• 繰り上がり方向を 2 方向にして新しい記数法を作れる(物智数)
問題集
解答問 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 01 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