n進数の論理演算
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2007/06/26(火) 03:36:580002デフォルトの名無しさん
2007/06/26(火) 03:37:31MINOR(入力の小さい方を出力)
│0 1 2 … n
─┼───────
0 │0 0 0 0
1 |0 1 1 1
2 |0 1 2 2
.: |
n |0 1 2 n
2進数でいうOR的なの
MAJOR(入力の大きい方を出力)
│0 1 2 … n
─┼───────
0 │0 1 2 n
1 |1 1 2 n
2 |2 2 2 n
.: |
n |n n n n
0003デフォルトの名無しさん
2007/06/26(火) 03:37:56DIFF(入力の差を出力)
│0 1 2 … n
─┼───────
0 │0 1 2 n
1 |1 0 1 n-1
2 |2 1 0 n-2
.: |
n |n n-1 n-2 0
2進数でいうNOT的なの
INVERSE(nと入力の差を出力)
─┼─
0 │n
1 |n−1
2 |n−2
.: |
n |0
0004デフォルトの名無しさん
2007/06/26(火) 03:38:26ADD(入力の和を出力、ただし最大n)
│0 1 2 … n
─┼───────
0 │0 1 2 n
1 |1 2 3 n
2 |2 3 4 n
.: |
n |n n n n
UPPER(入力があればnを出力)
─┼──
0 │0
1 |n
2 |n
.: |
n |n
0005デフォルトの名無しさん
2007/06/26(火) 03:38:53ちゃんと確認してないけど加算器くらいは作れそうな感じ
0006デフォルトの名無しさん
2007/06/26(火) 04:55:19積の1桁目を出力
あたりは欲しいかもしれん。
0007デフォルトの名無しさん
2007/06/26(火) 07:44:080008デフォルトの名無しさん
2007/06/26(火) 12:45:490009デフォルトの名無しさん
2007/06/26(火) 13:05:040010デフォルトの名無しさん
2007/06/26(火) 13:06:130011デフォルトの名無しさん
2007/06/26(火) 13:28:36┌──┐ ┌───┐
clk ───┤ADD ├────┤MINOR├─ Output
Input ─┬┤ | ┌─┤ |
│└──┘ | └───┘
│┌─-┬─-┐|┌─-┐ ┌───┐
└┤INV|UP ├┴┤INV├──┤MINOR├─ CF
└─-┴─-┘ └─-┘┌─┤ |
1─┘ └───┘
Inputの初期値は0とする
clkを1にするとOutputが+1される
Outputはそのまま次のInputへ
CF(キャリーフラグ)は次の桁のclkへ
MINORの片方を 0, n にすると
2進ANDと同じように使える
MINOR(X,0)=0 AND(X,0)=0 強制的に0設定
MINOR(X,n)=X AND(X,1)=X Xを取り出す
0012デフォルトの名無しさん
2007/06/26(火) 13:32:09|O C
─┼───
0 │1 0
1 |2 0
2 |3 0
.: |
n-1|.n 0
n |0 1
0013デフォルトの名無しさん
2007/06/26(火) 15:05:500014デフォルトの名無しさん
2007/06/26(火) 18:08:14オーバーフローするADDとか
n以外は0を返すLOWERとかも必要だろう
0015デフォルトの名無しさん
2007/06/26(火) 18:15:56─┼──
0 │0
1 |0
2 |0
.: |
n |n
INVERSE→UPPER→INVERSE でも同じだけど
いろいろ使えそうだし簡略化した方が楽だな
0016デフォルトの名無しさん
2007/06/26(火) 20:16:41誰がこんなもん欲しがるの?
0017デフォルトの名無しさん
2007/06/27(水) 01:07:140018デフォルトの名無しさん
2007/06/27(水) 05:31:08って思ったけどそれって高級言語レベルの話ですねすいませぬ
0019デフォルトの名無しさん
2007/06/27(水) 11:42:15http://pc.2ch.net/tech/kako/1016/10163/1016362068.html
0020デフォルトの名無しさん
2007/06/27(水) 12:57:52http://ja.wikipedia.org/wiki/3%E5%80%A4%E8%AB%96%E7%90%86
真(true)、偽(false)、不明(unknown)
OR
│T U F
─┼────
T |T T T
U |T U U
F |T U F
AND
│T U F
─┼────
T |T U F
U |U U F
F |F F F
NOT
─┼─
T |F
U |U
F |T
論理値の表示法の例
・1=真、2=偽とし、0 は 不明(unknown)や不適切(irrelevant)
・0=偽、1=真、第三の値(# や 1/2)
・-1=偽、1=真、0=第三の値
0021デフォルトの名無しさん
2007/06/27(水) 13:01:40不定値ってのが単に定義の問題なら>>17みたいに
「この値を不定値とする」ってことで済むけど、
本当に取り出してみるまで値が不定なのが欲しかったら
量子bitの世界になっちゃう気がする
0022デフォルトの名無しさん
2007/06/27(水) 13:21:310023デフォルトの名無しさん
2007/06/27(水) 16:53:46多値論理∋3値論理
0024デフォルトの名無しさん
2007/06/27(水) 16:55:520025デフォルトの名無しさん
2007/06/27(水) 17:02:180026デフォルトの名無しさん
2007/06/27(水) 22:22:39他の用途ってなんかあります?
0027デフォルトの名無しさん
2007/06/27(水) 22:26:02論理ー 論理ー 論理ー 論理ー
あぶない 論理だー
0028デフォルトの名無しさん
2007/06/27(水) 23:09:390029デフォルトの名無しさん
2007/07/01(日) 16:27:41わろす
0030デフォルトの名無しさん
2007/07/02(月) 19:55:28いろんな処理が簡単になるぽい
以下、単純のため盤面は8bitで
●石の有無のチェック
12001201 ←盤面
00002000 ←置く場所のbitだけ立てる
差(12001201, 11111111)=01110110
盤面とALL1の差を取ると石のある場所だけ1になる
小(01110110, 00002000)=00000000
それと置く場所との小さい方を取る
・石のない場所に置こうとするとALL0
・石のある場所に置こうとするとNOT-ALL0
ゼロ比較で条件分岐
→3クロック
0031デフォルトの名無しさん
2007/07/02(月) 19:57:03とりあえず面倒そうだから省略
●石の反転
12001201 ←盤面
00220000 ←ひっくり返せる場所のbitだけ立てる
差(12001201, 00220000)=12221201
返せる白を黒に、他はそのまま
大(12221201, 00002000)=12222201
さらに置く場所のbitを立てれば盤面が更新
→2クロック
アルゴリズムを変えなくても
単純な処理の部分で高速化できれば
ちょっとは強くなりそうだよね
0032デフォルトの名無しさん
2007/07/02(月) 20:00:06黒番と白番の処理はまったく同じにできるぽい
12001201 ←盤面
↓差(盤面, ALL2)
10221021
0033デフォルトの名無しさん
2007/07/05(木) 12:16:22■ このスレッドは過去ログ倉庫に格納されています