読者です 読者をやめる 読者になる 読者になる

プログラムdeタマゴ

nodamushiの著作物は、文章、画像、プログラムにかかわらず全てUnlicenseです

-Π≦θ<Πに納める

いったい計算するの何回目だよ、いい加減覚えろよということで、メモ //-Π≦θ<Πに納める場合 theta1 = theta - 2*PI*( 1 + floor( theta/(2*PI) - 0.5) ); //-Π<θ≦Πに納める場合 theta2 = theta - 2*PI*ceil( theta/(2*PI) - 0.5); //おまけ。-1〜1の場合 y…

プログラミングをするときどう思考するべきか考察してみた

後輩からプログラムを書くとき、アルゴリズムはわかってもプログラムに直すことが出来ない、for文やスタックなどをどう使えば良いのかわからない、難しいというぼやきを受けた。現在彼はトップコーダーにチャレンジしていて、そんな話になったのだが、その会…

FXML試してみた

お久しぶりです。卒論で死にかけていますがひとまず息はしています。さて、JavaFXが出てから結構立ったのでそろそろ私も弄ってみようと、FXMLというXML文書でGUIを構成する機能を試してみましたところ、謎の挙動を示したのでここで報告しておこうと思います…

おまけのおまけ:複数人数で条件分岐せずにじゃんけんできてた

ちょっと前にじゃんけんプログラムをポリモーフィズムも条件分岐も必要なしに書けるよ、という記事を書きました。ジャンケンプログラムにポリモー…?何それおいしいの? そのおまけとして複数人数の場合どうするか、と言う記事で、引き分けの場合だけは条件…

高速フーリエ変換(FFT)の解説。実装編

前回のソース2を再帰呼び出しからループに変換してみる。例えば前回のように2097152個のデータを突っ込むと21階層もの再帰呼び出しになる。したがって、これをループに変換するってのは重要なことだ。

高速フーリエ変換(FFT)の解説。理論編

私はあまり画像を波長空間でフィルタリングとか言うことをやらないので、実のところ、今までFFTどころか離散フーリエ変換(DFT)すらしたこと無かった。というわけで、ちょっと調べてみたのでまとめてみようと思う。かなり長い記事になるよ。

ジャンケンプログラムにポリモー…?何それおいしいの?

昨日の晩、私の先輩が突然、ジャンケンプログラムをJAVAでつくる課題が出たけどわからんから教えてとやってきました。 あ、先輩、ごちになりました(m __)m まぁ、課題の言わんとしていることは分かるんですよ。言わんとしていることは。 だからセオリーに乗…

おまけ:複数人数のじゃんけんプログラム

ググってみたら、意外にも数式だけで一気に勝利判定してしまうような記事は見当たらなかった。というわけで、おまけで複数人数の時はどうするかです。 といっても、流石に今回は引き分けか、それとも勝負がついたかで処理が異なるので1度条件分岐せざるを得…

ビット列を逆転する

あ〜、無駄だった。本当に無駄だったよ。 java.lang.Integerにreverse関数あったよ! でもせっかく考えたので記事にしておく。 public static int reverse(int n){ n = (n&0xffff0000)>>>16|(n&0xffff)<<16; n = (n&0xff00ff00)>>>8|(n&0xff00ff)<<8; n = (n…

一文字ずつHTML文法文字を出力する

新年明けましておめでとうございます。 <span style="color:red">ほげ<br />ほげ</span>ほげ? こんな文字列を一文字ずつ画面に表示したいけど、普通にやったら<span style="color:red"まで普通に文字として表示されてしまう。その次に突然これらが消えて以降の文字が真っ赤っか。。。改行文字が出力できない、という知人からの話を聞き、取りあえず作ってみました。 siterator.js 使用例 var t = "テストテスト 改行します\n<span style=\"color:red\">色つき<b>文字です</span>\n終わり</b>ます。"; …

Gupta-Sproullアルゴリズムの実装

ちょっと実装を行わないといけないことになったので、実装してみました。言語はJAVAです。今回、アルゴリズムで使用した色のテーブルはGURGE.COMのAdam Doppelt氏が作成したのを利用しました。読みやすさ優先の為、高速動作とかは特に考えていません。また、…

二つの数の正負が同じかどうかを判定する

二数a,bの正負が一致しているかどうかは数学的には a*b>=0 で与えられる。 が、プログラム的にはこれではうまくいかないことがある。 それはaとbの絶対値がそれなりに大きな値の時だと、オーバーフローを起こしてしまうのだ。 バグってたところがそれが原因…

正数以上の最小の2のべき乗数を探す

JOGLのテクスチャで、ある値以上の最小の2^nを求める必要が出た。私が直感的に実装したソースは以下。 int c;//目的の値。 int ret;//結果を格納 if(c<2)ret=c; else{ int shift=16; int add=8; for(int i=0;i<4;i++){ if(c != 1 << shift){ shift =(c > 1 <…

Perl6登場

Perl 6登場、"Rakudo Star" ようやく出る出る詐欺のPerl6が登場したようです。強力な構文を備えていますが、まぁ、流石に普及はないでしょう。どんな事が出来るかはここが分かりやすい それで Perl 6 の何がすごいんだと思ったあなた。ここがすごいんです。P…

Perlでオブジェクト指向プログラム触ってみた

あ〜、プログラマーのバイトしたい。自宅プログラマじゃなくてちゃんとしたところで。 けど、時間がねぇええええ。 色々探してみてるけど、大体9:30〜18:30で実働4時間以上で週3日以上、土日祝日は休みというのが学生向けで相場っぽい。 私の場合水金以外は…

実行させてはならない

(define ack (lambda (x y) (define ack1 (lambda (list y1) (cond ((null? list) y1) ((eq? (car list) 0) (ack1 (cdr list) (+ y1 1))) ((eq? y1 0) (ack1 (cons (- (car list) 1) (cdr list)) 1)) (else (ack1 (cons (car list) (cons (- (car list) 1) (…

scala弄ってみた

scalaはJAVAで実装されたJAVAVM上で動く関数型言語です。こちらのサイトからダウンロードして適当なフォルダに展開、そこにパスを通せばOKです。(JAVAがあれば)インストール不要なので手軽に弄れるのも魅力。 簡単な使い方はここでも参照して下さいな。 さ…

1の個数を数えよう

数値の中にある1の数の数え方について。プログラム中でint型を32個のboolean型が入った物だと考えてプログラムを組むところがあって、trueの数を数える必要があったのでこんな記事を書くことにしました。数える値がaの時int sum=0;for(int i=0;i<32;i++) sum…

画像を拡大してみよう。

縮小の時同様、元の画像(領域M)を拡大(領域M')する関数をFとする。この時Fは紙の上では元の画像の範囲にある点を拡大先に全単射する関数となる。が、残念ながら縮小時同様にPC上の画像は紙や数学上とは違い有限の点からなる。つまり、M上の全ての点の集…

画像を縮小してみよう

今回お借りした画像はゆんフリー写真素材集様のワット・プララーム↓私が書いたプログラムで30%サイズにしてはき出した画像(大きさは30%固定ではなく、好きな大きさに縮小できます。)ちなみに、フォトショップで同じサイズではきだした画像。遜色ない出来…

続、applescriptで悶絶してた

私はプリントをスキャンして画像データで保存して(紙だとどうせなくすから)、データ達の仕分けを適当に作ったperlスクリプトでやっていたのだが、やっぱめんどうくさい。ターミナル上でプチプチやるのも良いんだけど、視認性が悪いし、画像の中身を確認す…

プログラムの思わぬ落とし穴

今日、というかついさっき初めて気がついたのだが、私は今まで大きな勘違いをしていた。例えば、 int a,b,c;a = 3;b = 5;c = 10;とa,b,cがあるとしよう。で、プログラムをしていたらあちこちで見たり書いたりすると思うが、a += b+c;これはaにa+b+cの結果の1…

schemeも弄ってみませう。

さて、prologだけじゃなくってschemeの話もしておこうか。schemeはLispの方言の一つ。ソースの例を見ると(Scheme入門より引用)(define (list*2 ls) (if (null? ls) '() (cons (* 2 (car ls)) (list*2 (cdr ls)))))どえらい括弧が多いです。λ式みたいな感じ…

CGIの罠

いつの間にかHDの容量が半分を切っていた。そろそろやべーかなぁ、増設しようかな、なんて考えた時にふっと思い出した。私のHP(2010/12/22現在すでに閉鎖してあります)のあるサーバーの容量どれくらい残ってるのかなHP開始してからもうちょっとで一年たと…

プログラムは文系の分野だろ常識的に考えて

昨日私が5時ぐらいにうとうとしていたら、突然携帯という名の固定電話が鳴り出した。 T「必須単位一個落としました( ´Д⊂ヽ」 私「やったね!(`・ω・´)」 T「ひどっ!もうさ〜。教授から何か直接言われてマジ凹んだわ。」 私「何落としたんね。相変わらずバァ…

Cygwinにcurse.hのインストール

Windows環境でMacで書かれたプログラムをコンパイルとか実行とかとかの話です。Cygwinに環境を移動したからLinuxに近い環境はそろえてあったんだけど、それでもcurse.hとかいうのがファイル見つかんねーよボケェ、とコンパイラに怒られたので、渋々インスト…

中置記法を逆ポーランド記法に変換、逆ポーランド記法の計算法

あっれぇ?大分前にJavaScriptで色を逆ポーランド方に変換してから計算するスクリプトを作ってから何回か逆ポーランド記法で検索かけてきた人たちがいるんだよねぇ。どうせ需要ないしいいだろとか思ってたんだけど……必要?まぁ、やりっ放しで放置ってのもど…

OpenGLを始めよう!

というわけで、今日からマがつく……じゃなくて、今日からOpenGLの勉強を本格的に始めてみました。まずは、まぁ、入門だし、GLUTから始めましょーWindows版のGLUTはこちらから。 glut-3.7.6-bin.zip (117 KB) をクリックしてダウンロードして解凍します。んで…

ぼかしてみよー!

ぼかしについてちょっとググってみたらこんなページを見つけた(URL)このページをざっと要約すると、RGB値は明るさの対数表現なんだって。分かりやすい身近な例では、音なんかも同じだよね。一オクターブ上がると振幅数は元の値の二乗に増えるのは結構有名…