2006年1月アーカイブ

会社の先輩から「トランプをランダムに配るアルゴリズムを考えてみぃ」とクイズを出されたので帰りの電車で考えていました。で、なかなか面白かったのでここに記録。

疲れているうえに、もともとない頭を振り絞って考えたのが

  • vector を使う方法(反則ぎみ)
  • ランダムにソートして上から配る方法

の 2 つ。で、先輩から教えてもらったのが、

  • 残りの札からランダムに選んだ 1 枚を配る方法

1 番目は論外なのでちょっと置いといて、2 番目と 3番目についてちょっと説明してみようと思います。

それぞれを shuffle2, shuffle3 とするとコードは

void shuffle2( int *card, int n ){
   qsort( card, n, sizeof( *card ), cmp_rand );
}
int cmp_rand( const void *a, const void *b ){ return (rand() % 2 == 0) ? -1 : 1; }
void shuffle3( int *card, int n ){ int tmp; int i,j; for( i = 0; i < n; i++ ){ j = rand() % (n - i ); /* (1) */ tmp = card[j]; card[j] = card[ n - i - 1]; card[ n - i ] = tmp; } }

こんな感じです。私は並べ替えに qsort 関数を使ってしまったのですが、ソートはあくまでも順序付けられた並べ替えなのであって、シャッフルするのには qsort は計算量が無駄すぎました。しかも、そこからカードを配る場合には、さらに n 回ループしなくてはならず…。まだまだ勉強不足です。

一方、shuffle3 の場合は配列要素のスワップの回数は n 回 だし、カードを配るコードを追加するにしても (1) の箇所に追加すれば新たにループする必要もありません。すべてのカードの位置が変わっているのもいいところです。

ちなみに perl の List::Utilモジュールにある shuffle も、Java の Collections クラスの shuffle メソッドも shuffle3 と同じ方法でした。

これからも精進してまいります…。

ほぼ日で発表がありました。 2006年4月20日(木)のようです。「おとなもこどももおねぇさんも」のときはこどもだったのに、いまはすっかりおとなです。

そうか。ぼくももう出るころだと思っていたところだ。予約の準備をしておくよ。おやすみ…。ガチャン、ツーツーツー。

カタン

| | トラックバック(0) http://tsuyuguchi.com/masaaki/mt/archives/2006/01/16-0115.php のはてなブックマーク件数

タンダードカタン: おもちゃ&ホビー

とりあえず、カタン面白いです。詳しくは後ほど。

相撲のゲストに…

| | トラックバック(0) http://tsuyuguchi.com/masaaki/mt/archives/2006/01/15-1625.php のはてなブックマーク件数

今、大相撲 1 月場所 8 日目の NHK 番組のゲストにデーモン小暮がでています。副音声かと錯覚してしまうほど賑やかでおもしろいです。デーモンさんの相撲に対する博識に加えて、昨日私自身が始めて国技館で相撲を観てきたもので、年に似合わずコタツで相撲を見て楽しんでします。

フェンダーのハローキティギター。バツ丸ベースもあるのが抜け目ないというか本気を感じます。

でも、もっと本気を感じるのは金曜かきこみTVのタカミーギターデザイナー。「プロなので、どんなギターがきても大丈夫! 」という高見沢さんのコメントも本気です。

engadget に大阪府立大の学生が開発した自転車のスタビライザーの記事が出ていました。でも、これ実は、その自転車が倒れないようにするためではなくて、まっすぐ走るための機構で、それってスタビライザーと言っていいのかな?というツッコミが入るのですが、それはすでにリンク先のコメント欄に入っているようです。

で、私が言いたいのはそのことではなくて、記事中の日本に対する印象がとても外国人とは思えないのです。「自動車製造に長ける日本も実は街中に自転車があふれている、ぜひ駅前の駐輪場を見るべし」とか、「老人向けの発明って言ってるけど実は仕事帰りに一杯やったサラリーマンのための発明じゃないの?」とかね。読んでてて笑ってしまいます。いや、むしろこのような文章は日本を知る外国人だからこそ書くことのできる文章だともいえるのですが、なんか日本って極端な紹介のされ方ばっかりだよなぁ、と思わずにはいられないのです。

完成ってジグソーパズルやないんやからということですが、クリスマスに買ったルービックキューブ、こんなサイトあんなサイトを見て、ようやく完成までの手順を「覚え」ました。こういうパズルものは夜寝る前にまぶたの裏に浮かんできて勝手に動き始めたりしますが、手順を理解せずに覚えているだけなので、その心配はまったくありません。

メンバーの意図を無視して発売されたベスト版 RECYCLE と90 年代のシングル(2000年に発売したマキシ群ではなくて、細長い昔のシングル)を廃盤として、これまでの全シングルを 2 枚のアルバムに分けて発売するようです。RECYCLE が出た当時はメンバーが望んでいないものと知っていつつも買ったわけですが、改めてシングル集がでるということでこれは久々の買いの予感です。B 面の曲が入っていなかったらなおよいのですが、そこまでは望むまい。

シングルをすべてマキシに再編集して発売しなおすほどのこだわりをもつ彼らがシングルコレクションのアルバムを出すのは、誰のどういう思惑がはたらいているのかはわかりませんが、全シングルをまとめた形でリリースするということは 1 つの歴史ということ何だと思います。つまりは、スピッツを聴いてみたいのだけど、どのアルバムから聴いてよいのやら、じゃとりあえずシングルスを聴いてみるかという世代への受け皿が用意されたということです。スピッツのいちファンとして僕が高校生のときにビートルズの青盤・赤盤が CD で発売されたときのように、スピッツへの入り口が広がることを願いたいと思います。

でも、この記事の見出し…。廃盤のほうにフォーカスを当てるかね。廃盤にするアルバム・シングルの全曲が収録されているシングル集を発売するというのに…。

ver 1.1 を公開します。

変更点:1週間の開始を日曜日または月曜日から選べるように選択項目を追加。内部的な変更としては日付の色指定を条件付き書式からマクロで色を指定するように変更(条件付き書式だと 3 つまでしか指定できないので)。

* 将来のバージョンアップにより ver1.1 が旧バージョンとなった場合、ver.1.1 をサーバから削除するかもしれません。その場合は カテゴリ programming から最新のバージョンを見つけてください。

3 カラム化

| | トラックバック(0) http://tsuyuguchi.com/masaaki/mt/archives/2006/01/07-1902.php のはてなブックマーク件数

サイトのスタイルを変更し、3 カラムにしました。左右のカラムは position:absolute でそれぞれ left:0、right:0 で配置して、真ん中のカラムは左右のカラムの幅をマージンに持たせるようにしています。エッセンスだけを抜きとれば、

 .left{ position: absolute;
        left: 0;
        width: 200px;
  }
 .right{ position: absolute;
         right: 0;
         width: 220px;
 }
 .center{ margin-left: 200px;
          margin-right: 220px;
 }

のような感じなります。このスタイルの利点は

  • 真ん中のカラムがブラウザの幅に合わせて変動するので、読む人が好きな幅に変更できる。
  • 左右カラムが絶対配置なので、HTML ソース内の記述箇所に依存しない。したがって本文である中央のカラムをソースの先頭部分に持ってくる事ができ、ひょっとすると SEO に効果があるかもしれない

です。カテゴリが programming なのはご愛嬌と言う事で。

<< 1 2

最近の画像

Zero History - ギブスンの新作が 9 月に発売 -
虐殺器官
ドミニオンのランダマイザアプリ、dominion minion が日本語対応!
ハイペリオンの没落 ~ 完結...でもまだ続く~
ハイペリオンの没落 ~ 完結...でもまだ続く~
ハイペリオン - 長大な叙事詩 SF のスタート -
ハイペリオン - 長大な叙事詩 SF のスタート -
「都市と星」 - 10億年と言われてもよく分からない -
「星を継ぐもの」 - 良い Sci-Fi -
トールサイズのニューロマンサーを買った
虎よ、虎よ! - 主人公フォイルの執念の物語 -

私の本棚

 

自転車走行距離

自転車走行距離

Flickr Photos

FlickrPhotos

なかのひと

Y!ログール

このサイトについて

2011年10月

            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          

アーカイブ

My Update

  • Loading...

その他

あわせて読みたいブログパーツ