三日坊主ブログ

意外と続いてます。。。

合同式

定義1.1 

mを自然数、a、bを整数とする。aをmで割った余りと、bをmで割った余りが等しい時、

a≡b (mod m)

と書き、「aとbは法mに関して合同である」という。

 

 

定義1.2

mを自然数、a、bを整数とする。a-bがmの倍数であるとき、

a≡b (mod m)

と書く。

 

 

定理1.4 合同式の性質

mを自然数、a、b、c、dを整数とする。

a≡b (mod m), c≡d (mod m)のとき、

(i) a+c≡b+d (mod m)

(ii) a-c≡b-d (mod m)

(iii) ac≡bd (mod m)

が成り立つ。

 

 

これが成り立つと、問1.3が解ける。

a≡3、4 (mod 5)と×ので、

a+b≡3+4=7≡2 (mod 5)

ab≡3x4=12≡2 (mod 5)

 

 

剰余の計算だけで、元の数を足したり掛けたりした後の剰余が計算できるなんて、驚き。

 

 

ガロア理論の頂を踏む (BERET SCIENCE)

ガロア理論の頂を踏む (BERET SCIENCE)

 

 

割り算

昨日の続き。寝ながら考えたら分かった。

 

 問1.3 aを5で割ると3余り、bを5で割ると4余る。a+b、abを5で割るといくつ余るか。

 aを5で割ると3余り、だから、

a=A×5+3

bを5で割ると4余る、だから、

b=B×5+4

ということは、a+b、abは、

a+b=A×5+3+B×5+4=5(A+B+1)+2

ab=(A×5+3)(B×5+4)=A×5×B×5+A×5×4+B×5×3+12

  =5(5AB+4A+3B+2)+2

と式変形できるんで、どちらも余りが2というのがわかる。

 

昨日は式の立て方がまずかった。

前の章で似たようなことを教えてくれてたのにね。

 

ガロア理論の頂を踏む (BERET SCIENCE)

ガロア理論の頂を踏む (BERET SCIENCE)

 

 

余り

 問1.3 aを5で割ると3余り、bを5で割ると4余る。a+b、abを5で割るといくつ余るか。

a、bを5で割った時の余りがわかってると、a+b、abを5で割った時の余りがわかるらしい。ふーん。

 

a÷5=A+3

b÷5=B+4

だから、

両辺それぞれ加算して、

a÷5+b÷5=A+3+B+4

(a+b)÷5=A+B+3+4=A+B+5+2

だから、a+bを5で割った時の余りは2、

 

両辺それぞれ乗算すると、

a÷5×b÷5=(A+3)×(B+4)

ab÷25=AB+3B+4A+12

???どうまとめていけばいいのかわからん。。。

答えは12を5で割った余りの、2らしい。

 

a+bとabの5で割った時の余りが、どちらも2になるところがミソらしい。

このあと証明されるんだろうけど、ひとまず今日は終わり。

 

ガロア理論の頂を踏む (BERET SCIENCE)

ガロア理論の頂を踏む (BERET SCIENCE)

 

 

osxでext4のマウント

% brew install ext4fuse

って感じでインストールした。Homebrewって便利だなあ。

 

% sudo ext4fuse /dev/disk1s1 ~/hoge

fuse4x kernel extension was not loaded. Please check /var/log/{system|kernel|debug}.log for more information.

あれ?って思ってさかのぼったら、ちゃんと書いてあった。。。

In order for FUSE-based filesystems to work, the fuse4x kernel extension

must be installed by the root user:

  sudo /bin/cp -rfX /usr/local/Cellar/fuse4x-kext/0.9.2/Library/Extensions/fuse4x.kext /Library/Extensions

  sudo chmod +s /Library/Extensions/fuse4x.kext/Support/load_fuse4x

もう一度試したらマウントできた。読み込み専用だけど。

WHR-G301Nを子機にして、ソフトバンクの光BBユニットに繋ぐ -> 無理っぽい

ここ数日格闘してたけど、どうやら無理っぽい。

 

別の部屋にNASを置いて、無線でインターネットに繋ぎたくて、

インターネット→光BBユニット→(無線)→WHR-G301N→NAS

を目指していた。

WHR-G301Nから「エアステーション間接続」で繋がったぽかったけど、

どうしても光BBユニットが反応してくれない。。。

 

そろそろ諦めたくて検索してみたら、こんなのがあった。

価格.com - 『アドホックパーティーをやりたいのですがご享受ください!』 クチコミ掲示板

やっぱダメなんだろう。あきらめました。

 

 

BUFFALO 11n/g/b対応 無線LANルーター 【Wii U動作確認済み、iPhone5・Android端末対応】 WHR-G301N/N(FFP)

BUFFALO 11n/g/b対応 無線LANルーター 【Wii U動作確認済み、iPhone5・Android端末対応】 WHR-G301N/N(FFP)

 

 

AUTOINSERTLISP

仕事でVerilogを書くとき、verilog-modeを使わせてもらっている。AUTO_TEMPLATEやAUTOINSTを使って、インスタンス呼び出しをいい感じにしてた。

 

シミュレータの問題で、2次元配列をいい感じにダンプできなかった。仕方が無いので、1次元配列(というかバス)にassignすることで無理矢理ダンプしてた。

こんな感じ。

reg [7:0] ARRAY [10:0];

wire [7:0] BUS_0 = BUS[0];

wire [7:0] BUS_1 = BUS[1];

....

面倒くさ過ぎてなんとかならんもんかと思って、最近暇だったので調べてみたらなんとかなった。AUTOINSERTLISPなる関数で、lispで生成した文字列を挿入できた。

こんな感じ。

   reg [7:0] BUS [10:0];

/*AUTOINSERTLISP(insert (mapconcat '(lambda (i) (concat "    wire [7:0] BUS_" (number-to-string i) " = BUS[" (number-to-string i) "];")) (number-sequence 0 10) "\n") "\n")*/

// Beginning of automatic insert lisp

    wire [7:0] BUS_0 = BUS[0];

    wire [7:0] BUS_1 = BUS[1];

    wire [7:0] BUS_2 = BUS[2];

    wire [7:0] BUS_3 = BUS[3];

    wire [7:0] BUS_4 = BUS[4];

    wire [7:0] BUS_5 = BUS[5];

    wire [7:0] BUS_6 = BUS[6];

    wire [7:0] BUS_7 = BUS[7];

    wire [7:0] BUS_8 = BUS[8];

    wire [7:0] BUS_9 = BUS[9];

    wire [7:0] BUS_10 = BUS[10];

// End of automatics

 EmacsLispがよくわかってないんで、ここまで来るのにひと苦労。

でもうまく応用すれば、検証で使えそう。これまではRubyとかで条件ぶりしてたけど、Verilogで書いたベンチと別ファイルになるんで管理がめんどかった。lispで書けるんで、ベンチの中に直接埋め込めるようになるから、一つのファイルにまとめられる。

いいかも。

 

一次不等式を互除法で

 

ガロア理論の頂を踏む (BERET SCIENCE)

ガロア理論の頂を踏む (BERET SCIENCE)

 

 

問1.2 次のそれぞれの式を満たす整数x, yを一組求めよ。

(1) 17x+5y=1

(2) 15x+6y=9

(3) 15x+6y=5

一次不定方程式の解を、例の互除法で求めるっぽい。

 

(1)の解き方は、17を5*3+2に置き換えて式変形。

17x+5y=(5*3+2)x+5y=5(3x+y)+2x=5z+2x

z=3x+yと置いてる。さらに

5z+2=(2*2+1)z+2x=2(2z+x)+z=2w+z

w=2z+xとまたもや置く。

2w+z=1から、w=0, z=1が求められる。でもってさかのぼって計算すると、

x=-2, y=7という答えが導きだされるんだって。

 

計算過程が互除法と同じになってる。ふむ。