No Such Blog or Diary

«Prev || 1 | 2 | 3 |...| 927 | 928 | 929 |...| 954 | 955 | 956 || Next»

階乗のソートを実装

階乗のソートをやろうとしている人間がいたので講義中に実装してみた.アイデアは最下位のゼロの数とそれに続くいくつかの桁数を保持してソート.計算中に 5 の倍数がきたときに末尾のゼロを捨てるので,その処理をしても比較に使う桁数を正確に保持していられるように工夫が必要.とりあえず 10000000 でも動くので良し.

MP3プレーヤ

おもむろに Rio のHDD内臓プレーヤ Rio Carbon を買ってみた.1インチ5GのHDDなので,何十時間分もの曲が余裕ではいる.プレイリストも複数用意しておけるようでなかなかよい(Flushのやつだと高々1つまでが多い).とりあえず 88g と単一電池一個分の重さでこれだけ機能があれば得だろう.さーて,何の曲を入れようかなぁ?

Pickの定理

格子点上に頂点を持つ多角形の面積と内部の格子点数と辺の上に載っている格子点数の間には関係式がある.

「Pickの定理」 平面上の格子多角形 P に対して,辺上にある格子点の個数を b, P の内部格子点数を c とすると, その面積 S(P) は次式となる: S(M) = (c-1) + b/2 .

基本的なアイデアは多角形を面積が 1/2 の三角形に分解していくイメージのはず.とりあえず,この定理を知っていると格子点上の図形問題が格段に簡単に解けるに違いない.

自転車で180度回転

今朝の道路は雨に濡れて滑りやすかった.面白そうなので赤信号の手前で自転車の後輪にブレーキを掛けて後輪を滑らしてみた.そしたら見事に180度回転した.

いやぁ,急ブレーキは危ないねぇ.

ThunderBird のプロファイル設定

ThunderBird を使うのにプロファイルの設定をデフォルトのままにしてしまい,設定の保存先がCドライブになっていた.これではOSの再インストール時に消してしまう恐れがあるため,新しいプロファイルを作って設定ファイル群を別のドライブへ移動.プロファイルを設定するには thunderbird.exe -p するか,スタートメニューから Profile Manger を選択.あとはディレクトリを指定して新しいプロファイルを作成するだけ.古いのは危ないので消しておく.次回以降も新しいプロファイルで起動されるようにチェックを入れたら ThunderBird 起動.どうやらうまくいったようだ.

続・冪のソート

ということで,横でゲームをしつつ冪を下位桁からの辞書順にソートするプログラムを組んでみた.冪をソートするときにはその桁数が大きすぎてメモリに載らないことが問題になる.そこで,基本的にメモリの節約をメインに考えて作成した.節約のための重要点は,冪をソートするといってもその全ての桁が必要ではなく,基本的には下位の桁の一部しか必要でないこと.そして,冪の下位桁は上位桁を計算しなくても正確に求められ,再計算も簡単であること.これらに基づき,最初は下位の一部を計算しておき,ソートのときに区別が付かなければより上位の桁まで再計算するようにした.

実際に計算してみると,2の冪の場合には冪が20000000になっても下位16桁だけでソートが完了.思いのほか下位桁がバラバラのようである.このときのメモリ使用量は 1G強.時間は... 分単位.それなりに動くプログラムが出来上がって満足.単位は去年とってしまったけど課題を提出しても良いかなぁ?

«Prev || 1 | 2 | 3 |...| 927 | 928 | 929 |...| 954 | 955 | 956 || Next»
Search
Feeds

Page Top