2008-01-01から1年間の記事一覧

誕生日が++ageではなくage++の理由

まず++演算子のおさらい。 ++演算子は、変数の前につけて++aとすることも、後ろにつけてa++とすることもできる。このふたつには違いがある。 この違いは、print(++a)やprint(a++)とするとわかる。++aは式としてはaを1増やした値に、a++は式としては増やす前…

フェルマーテストは乱数の性能にあんまり影響されない

試しにフェルマーテストが乱数の質で性能に違いがあるかやってみました。 1千万までの合成数について、何回の判定で合成数と認識されるかというのを、100回やってみました。 1回 - 433428013 2回 - 97607 3回 - 7565 4回 - 2207 5回 - 1160中略213回 - 1 223…

longの乱数を指定範囲で得る方法、intと同じでよかった

結局、ちょっと勘違いがあって、nextInt(int)と同じことをやればよかったことがわかりました。 long nextLong(long n){ long bits, value; do{ bits = r.nextLong(); if(bits < 0) bits -= Long.MIN_VALUE; val = bits % n; } while (bits - val + (n - 1); …

プログラマなら、フェルマーテストは一度書いておくべき

gcdは再帰の良い例だし、modPowの反復二乗法ではビット演算を意識する。 そして、フェルマーテスト自体は乱択アルゴリズムのひとつだ。 微分積分は使わない分野では全く必要ないし、使う分野というのも狭い。 けども、整数演算は、プログラムとは切り離せな…

カーマイケル数を求めてみる

やっぱ、どの数がカーマイケル数か気になるので、1千万までのカーマイケル数を求めてみました。全部で105個です。 561 1105 1729 2465 2821 6601 8911 10585 15841 29341 41041 46657 52633 62745 63973 75361 101101 115921 126217 162401 172081 188461 25…

フェルマーテストで素数判定

longの乱数が欲しかったのは、素数判定がやりたかったからなのですが、確認のためにエラトステネスの篩との比較をしたので、結局intの範囲までしか使いませんでした。 素数判定には、フェルマーテストを使います。で、今回は、わざと判定回数を少なくしてみ…

longで指定範囲の乱数

結局、乱数が一様であれば、それを分割した部分も一様になるはずなので、基本的にはgetLong() % nで大丈夫そうです。ただ、そうするとlongの範囲が割り切れなかった部分で、乱数にムラができるので、考慮する必要があります。 で、結局そうすると、nがintの…

longで、範囲指定した乱数を得るにはどうすればいいの?

ところで、Javaの乱数ではnextInt(int)というメソッドがあるので、intだと範囲指定して乱数を得ることができます。 けどもnextLong(long)というメソッドはないので、longだと範囲指定して乱数を得ることができません。 なにも考えなければ nextLong() % n; …

Javaの乱数

最近、乱数について興味があって、いろいろ調べてたら、java.util.Randomはひとつめの値が乱数としては使い物にならないくらい偏りがあるらしい。 試しにこんなプログラムを書いてみます。 public class RandomRange { public static void main(String[] arg…

2の100乗の階乗とか

具体的な計算はid:smoking186さんがlog_{10} (2^{100})!を推定する - 186 @ hatenablogで書かれてますが、とりあえず。 まあ、2の何乗かが何桁になるかは、プログラマのたしなみなんで、2の100乗が何桁になるかは基本として。 何ビットで何桁が扱えるかとか…

小室哲哉の人とそのバックバンドだった人

1980年から1990年の歌謡曲って、阿久悠から小室哲哉の流れで、これは役割的には作詞から作曲への流れと見れるんだけど、阿久悠の詞は、朝が来ても夜が来ても夏が来ても冬が来ても、どんな歌が来てもいけるよ的な、すんごい力強さがあったのに対して、小室の…

簡単めの問題

・2^100の一の位の数字は何になるか ・(2^100)!の一億の位の数字は何になるか

2の100乗の階乗が何桁になるかを暗算で計算するにはどうするか

というのをだいぶ前にお風呂でやってたことがあって、こないだ思い出してついったに書いたんだけど、連休ヒマな人は考えてみると楽しいと思う。 いま流行りのフェルミ推定ですかね。 結局お風呂でやってたやつは計算間違いがあったことがわかったんだけど。

プログラムテクニックはダイエットや健康法みたいなものか

変数のスコープがどうこうだとか、1関数の行数は何行までとか、重複を共通化するとか、プログラムをよくするというテクニックがあるけど、あれいつも疑問に思ってた。 果たして、そんな単純なルールでプログラムが良くなるものかと。プログラムというのは手…

がんばってブログ書いても

ダイエットプログラム10日間無料、とかからしかトラバないんか 追記:「★ダイエットプログラム10日間無料体験者募集!!」というトラバがついていたのだけど、こんなスパムサイトのページランク上げる手助けするのも癪なので、トラバ消しました。

円周率でも求めてみるか

なんだか、java-jaチャットで円周率の話になってた。 で、id:cactusmanが でいいんじゃねぇの?って言ってたので、試してみた。 で、こんなコードを書いてみる public class Pai { public static void main(String[] args) { double sum = 0; double d = 0.0…

アルゴリズムデザインの夢

なんか、今日、アルゴリズムデザインを読む夢をみてた 夢の中で、id:kiwanamiの人が「これを読んでアルゴリズムを覚えても、全部はどうせ覚えられないから意味がない」などと言ってた。 実物のid:kiwanamiは、もちろんそういうことを言う人ではなく、むしろ…

敷居の高い読書会は、最初の項をよみました

ごはん食べながら、敷居の高い読書会の話になったので、ついでに読んだ。 最初の項なので、この本がどういう形式で進んでいくかのサンプルという感じ。 完全マッチングの問題。 わかったこと 「男性側からプロポーズすることにすれば女性が不満足になり、女…

なんかみんな大人になって技術への興味は薄れたのかな〜とか思う

Javaやってた人のブログ見てると最近は、元請がどうとか下請けがどうとかあのフレームワークの方針が変わってどうだとか、ブログやらプレゼンでいかにウケるかとか、なんかもう技術にあんまり興味がないんじゃないかと思ったりする。興味があってもそれどこ…

敷居の高い読書会、始めました

id:kiwanamiと一緒に、敷居の高い読書会を始めました。 とはいえ、誰でも本を持ってくれば参加できます。 基本的に毎日やる予定だし、本の構成も各部の独立性は高いので、いつでも参加可能です。 では、なぜ敷居が高いか。 敷居の高さ、その1:1冊15000円。…

JJUG クロスコミュニティカンファレンス無事終了しました

昨日はクロスコミュニティカンファレンスでした。 http://www.java-users.jp/contents/events/ccc2008fall/ ぼくのところのBOFは、ぼくの企画だけあって、ぼくにとってはとても楽しかったです。 ということで、BOFのまとめ。 OpenSocialで作るソーシャルマッ…

JJUG CCCのBOF、タイムテーブルメモ

ちょっとメモ。あとでちゃんと書く。かもしれない。 17:45 よういちろうさん 18:10 縣さん 18:35 岡崎さん 19:00 太田さん 19:25 水島さん 19:45 終わり

ビール画像判定プログラムできたよ!

画像同士の距離が取れるなら、ビール画像の判定プログラムもできるよね。 ってことで、手持ちの画像をSVMに食わせてみて、ビール画像を判定させてみました。 誤判別?なにそれ ソースはこんな感じ。 ビールの画像はbeerがついたフォルダかファイル名にしてく…

画像同士の距離がとれたら近い画像マップができるよね

CCVで画像同士の距離が取れたってことは、画像同士どれが近いかというマップができるよね。 ソースはこんな感じで

Color Coherence Vectorで画像検索を作ってみた

ということで、昨日のColor Coherence Vector使って、似た画像を検索するプログラム作ってみた。 ちょっと簡単に似た画像を求めたいときには、なかなかよさげ。 左側がキーになる画像 ソースはこんな感じで。最初のパスには、画像のフォルダを入れてください…

Color Coherence VectorをJavaで実装してみた

こちらで紹介されてたアルゴリズムをJavaで実装してみました。 Color Coherence Vectorを実装してみた 詳しい説明はあちらを見てもらうとして、前処理をした画像はこんな感じ 結果はこんな感じ。ここでは、横を200ドットに制限して、20ドットを閾値にαとβを…

仕事のある勉強とない勉強

なんとなく思ったこと。 ここで、「仕事のある」というのは、数として、という話。 プログラマの勉強の分野を3つに分けてみる。 一つめで、一番大きいものは、データベースアクセスだったりWebなどのユーザーインタフェースだったり、プログラム外部とのや…

JJUGクロスコミュニティカンファレンスでのショートプレゼン

ここで募集した、JJUGのクロスコミュニティカンファレンスでのショートプレゼンの内容が決まりました。 http://d.hatena.ne.jp/nowokay/20080903 15分×4枠の予定だったのですが、枠が拡大して、20分×5枠になりました。 「OpenSocialで作るソーシャルマッシュ…

続・書名に「JavaScript」とつけることの危険性。とてもいい本なのに

昨日の話の続き http://d.hatena.ne.jp/nowokay/20080928 今日、本屋さんにいったけど件の本はなくて、id:kiwanamiの人のところに遊びに行ったらあったので、読ませてもらった。 整列やグラフ理論といったアルゴリズムの基礎から、データマイニング、PageRan…

書名に「JavaScript」とつけることの危険性

Amazon見てて思ったこと。 こういう本があった。内容は見てないので、一般論。JavaScriptによるアルゴリズムデザイン―オブジェクト指向からDB・Web・マイニングまで作者: 石川博出版社/メーカー: 培風館発売日: 2007/10/01メディア: 単行本購入: 6人 クリッ…