2014年8月31日日曜日
両替問題を解いてみる。
両替問題を解いてみました。
やっていることは1000円を日本の硬貨(500円,100円,50円,10円,5円,1円)の6種類で払った場合の支払うすべての組み合わせの数を計算します。
アルゴリズムとしては高い硬貨から任意の数とっていくことを1000円になるまで再帰的に繰り返しています。
結果としては24万8908通りありました。手で計算するのはやり方が分かりませんが大変そうですね。あとなぜかC言語で書きましたが残念ながら完全に忘れていることが分かりました。
2014年8月27日水曜日
2次方程式の解の証明をMathJaxで書く
MathJaxを試してみました。2次方程式の解の証明も簡単に書くことができました。
$ ax^2+bx+c=0\\ \Rightarrow x^2 + \dfrac{b}{a}x + \dfrac{c}{a}=0 \Rightarrow \displaystyle \left(x^2 + \dfrac{b}{a}x + \dfrac{b^2}{4a^2} \right)-\dfrac{b^2}{4a^2}+\dfrac{c}{a}=0\\ \Rightarrow \displaystyle \left(x + \dfrac{b}{2a} \right)^2 = \dfrac{b^2-4ac}{4a^2} \Rightarrow x + \dfrac{b}{2a}=\dfrac{\pm \sqrt{b^2-4ac}}{2a}\\ \Rightarrow x=\dfrac{-b \pm \sqrt{b^2 - 4ac}}{2a} $
MathJaxの内容はこんな感じです。
$
ax^2+bx+c=0\\
\Rightarrow x^2 + \dfrac{b}{a}x + \dfrac{c}{a}=0
\Rightarrow \displaystyle \left(x^2 + \dfrac{b}{a}x + \dfrac{b^2}{4a^2} \right)-\dfrac{b^2}{4a^2}+\dfrac{c}{a}=0\\
\Rightarrow \displaystyle \left(x + \dfrac{b}{2a} \right)^2 = \dfrac{b^2-4ac}{4a^2}
\Rightarrow x + \dfrac{b}{2a}=\dfrac{\pm \sqrt{b^2-4ac}}{2a}\\
\Rightarrow x=\dfrac{-b \pm \sqrt{b^2 - 4ac}}{2a}
$
2014年8月23日土曜日
はじめてのWebGL
2014年8月19日火曜日
ノンブロッキングチャネルを試す
SocketChannel/SocketServerChannelを使ってマルチスレッドでなくても複数のクライアントに対応できるようなサーバができます。これでNode.jsはいらないですね。それにしてもByteBufferは慣れない。
2014年8月14日木曜日
Javaだけで作るWebSocketサーバ
JavaだけでWebSocketを動かすサーバを作りました。
動作としてはブラウザでHTMLを表示した後にWebSocket経由でtestという文字を送受信するだけです。
後は双方向にメッセージをやり取りできるようにするのと、処理を汎用化すれば実用的に使えるようになるはず。
ほとんどはWebSocket サーバの実装とプロトコル解説を参考にさせてもらいました。
引っかかったところとしては、WebSocketのレスポンスヘッダの改行コードがCRLFじゃないといけないところ、慣れていないということもありましたがbyteを使ってバイナリ処理を書くところでした。Java(SE)だけで作ろうとしていたため暗号化部分の処理ができるか心配でしたが幸運なことにJava8でBase64の処理クラスが追加されていたのでBase64の処理を素で書かずにすんでよかったです。
2014年8月13日水曜日
文字列の重複順列を出力する
文字列の重複順列を出力する例をerlangとJavaで書いてみました。
erlangのほうがJavaの5倍も短く書けるので5倍の生産性がありまぁす!といえば経営者たちもerlangを使うことに納得してくれることでしょう。
erlang版
Java版
erlang版
Java版
2014年8月12日火曜日
intの数値をbyte配列に変換する
意外とこういうメソッドがなかったので作ってみた。mainメソッドだけ見ると回りくどいけど必要な人には価値が理解いただけるはず。最近気がついたけどblogに貼付けるだけだったらコメントが入れられるgistだけでいい気がしてきた。
登録:
投稿 (Atom)
