Home > Archives > 2009年12月03日

2009年12月03日

めるせんぬついすたを理解した?

擬似乱数の生成でよく使われる方法は,過去の乱数のいくつかから次の乱数を作るという生成法.至って自然な考え方だけど,質の良い擬似乱数を作るには過去の乱数から次を作るところに沢山の工夫が必要になる.

n個前までの値を足し合わせて新しい値を作るだけだと,n次の原始多項式に対応した足し合わせをしても所詮 2^n-1 周期のM系列にしかならない.ワードサイズがいくつであろうが,ワード内の各ビットは独立にM系列なだけで,ワードサイズに依存せず 2^n-1 周期にしかならない(実際に乱数として出力する際にビットをごちゃ混ぜにする調律が行われるが,あくまで出力時に混ざるだけであって再帰部分では混ざらない).これがいわゆるGFSRというやつ.

で,単純に足し合わせるのではなく,ビットの系列を再帰時にごちゃ混ぜにしてしまう(定式化上はワードに対して行列をかける操作)のがTwisted GFSRとかいうやつ.こいつはワードサイズを w とすると,w本のビット系列がくっついでしまっているので,全体としては nw 次の多項式で次のビットを計算していることになる.なので,この多項式が原始多項式であれば,2^nw-1周期とかいうむちゃくちゃなM系列になる.

が,適当に考えた混ぜ方が原始多項式に対応するかどうかの判定がむちゃくちゃ難しいところに問題がある.

で,それを早く判定できる方法を考えて,実際に良い混ぜ方を提案したのがメルセンヌツイスタ.ぶっちゃけメルセンヌツイスタの貢献ってのは,原始多項式の高速な判定法の提案と,それを上手く利用できる生成式のクラスを与えたことだと思う.MT19937作りましたじゃない.

だがしかし,原始多項式の高速な判定法は理解して(見て)いない… これではメルセンヌツイスタを理解したことにはならないね.

VNCで画面更新されない@Ubuntu 9.10

視覚効果を有効にするとVNC接続時にクライアント側の画面更新がされてくれない….イベントの処理はされているようで,アイコンクリックしてサーバ側でちゃんとソフトが立ち上がったりはする.でもその結果がクライアント側に表示されない.

視覚効果をなしにすると問題なくクライアント側の画面が更新されるので,効果なし状態で使い続ければよいのだけど… それはなにか負けた気分なのでどうにかしたい.

うーん,8.04の時にはcompiz動かしっぱなしでも問題なかったんだけどなぁ… ちょっと原因不明.nvidiaのドライバのバージョン変えても駄目だしクライアントソフト変えても駄目だし.あー,遠隔で作業しづらい.

うーん,vnc4serverで別のセッションを立ち上げてそこに接続する分には問題ないから独立したリモート作業自体はできる.が,門がしまるから帰ろうとかやったときに中断した作業をリモートで継続するのは難しいなぁ.

一応,イベントは転送されているのだから,リモートから接続して視覚効果を切り替えて接続し直せば問題ない気もしてきた… でも視覚効果を切り替えるには普通には手間がかかるので,簡単に切り替えられる方法を見つけなければ.

で,普段はcompiz使っておいて,デスクトップへのリモート接続が必要な時にリモートからデスクトップの視覚効果をなしにする,泥臭い方法を編み出した.下の 1 と 2 が前準備で,3 と 4 をリモート接続が必要な時に行う.

  1. 適当なvnc serverでデスクトップとは別のスクリーン1を起動しておく.
  2. gconf-editor でショートカットキーの設定を入れる.
    • /apps/metacity/keybinding_commands/command_1 の値を gnome-appearance-properties --display=:1 にする.
    • /apps/metacity/global_keybindings/run_command_1 の値を <Control>F1 にする.
  3. リモートからデスクトップに VNC で接続し,スクリーンのロックを外してから Ctrl+F1 のショートカットキーを発行.
  4. スクリーン1にVNC接続して,立ち上がっているはずの外観の設定で視覚効果を「なし」にする.最初から「なし」になってたら,別の選択をして,エラーが出たら「なし」に再度設定しなおす.

これでデスクトップ側の視覚効果がなしに切り替わって,VNCの画面更新ができるようになる.やってることは,デスクトップの外観の設定の変更をvnc serverで用意した別のスクリーンでやっているだけ.vncserverで用意したスクリーン上で起動した外観の設定では,デスクトップ側の設定を変更できない.なので,デスクトップ側で外観の設定を起動しつつ,その操作を別スクリーンでやるという手段に出た.とりあえずこれで目的は達した.問題があるとすれば,これをやった後にcompizを再設定するのが面倒だということくらい.

こんな回りくどいことせずにショートカットキー一発で外観の設定をなしに出きると楽なんだけどなぁ.gnome-appearance-properties のソースとか読めば分かるのかなぁ?

Home > Archives > 2009年12月03日

Search
Feeds

Page Top