スポンサーサイト

一定期間更新がないため広告を表示しています

スポンサードリンク | - | | - | - |

マインクラフト プログラミングテスト

マインクラフトでプログラミングテストしてみた。
ComputerCraftというMOD(有志による改造プログラム)が必要。ただし最新版のMineCraftに対応してないのでバージョンを落として遊ぶ必要がある。でもプロファイルで起動バージョンを選べるので再インストールの必要はない。最新版のセーブデータも旧バージョンで遊べた。

タートルと呼ばれるロボットを制御してみた。
ロボットをゲーム中で調べるとターミナルが開き、Linux風コマンドが使用できて驚いた。lsとかmkdirとか使える。
とりあえず一歩前進させてみた。
次は外部エディタが使用できるようにしたい。

 

ジャジャガッチ | コンピュータ | 21:27 | comments(0) | trackbacks(0) |

TeXで数値計算

TeXで数値計算2。
TeXを知らない人には、僕がいかに下らないことをしようとしているか伝わらないと思う。残念。

ちょっと調べてみたけど、TeXが扱えるのは整数のみで浮動小数点は非対応らしい。そりゃそうか、文書処理が目的なわけだし・・・。
・・・、でも固定小数点使えばいけるか・・・?
というわけで試してみた。

試すのはみんな大好きオイラー法。
df/dx = fという微分方程式を数値的に解きます。
解はご存知の通りexp(x)。オイラー法では
f(x+dx) = f(x)(1+dx)
を使って計算します。左辺のfを便宜上f'と書くことにしよう。
f' = f(1+dx)
で計算できるわけだけど、dxは1よりずっと小さい数で困るわけだ。不動小数点使えないから。
じゃあ、今回はdx=0.01として両辺10000倍してみよう。
10000f' = 10000f + 100f
100fを単位として最後に10000で割ればいいわけだ。
というわけで、ほいTeXコード。
画像の左がTeXで計算したもの(解がそのまま文書整形されて出てくる!)、右がC言語で計算したもの。

一応出来た。

¥documentclass{jarticle}
¥begin{document}
¥newcount¥f
¥f = 10000
¥newcount¥g
¥newcount¥h
¥newcount ¥k
¥k = 0
¥g = ¥f
¥loop¥ifnum¥k<50
¥the¥k$¥to$¥the¥g
¥g = ¥f
¥h = ¥f
¥divide¥h by100
¥advance¥g by¥h
¥f = ¥g

¥advance¥k by1¥repeat
¥end{document}

ジャジャガッチ | コンピュータ | 21:25 | comments(0) | trackbacks(0) |

TeXで数値計算って出来るのかしら

数式をレポートに書くのは面倒くさい。
なのでTeXを使うわけだが、最近はwordも結構やりおる。
TeX風コマンドを受け付けてくれる。

それはそれとして、TeXで数値計算って出来るのかな、と思って少し調べてみた。
ちょっと試してみた。
下のTeXコードは変数a=1,b=2,cを用意して、c=a+b後表示するもの。
こういうこと出来るの知らなかったよ。

¥documentclass{jarticle}
¥begin{document}
¥newcount ¥a
¥newcount ¥b
¥newcount ¥c
¥a = 1
¥b = 2
¥c = ¥a
¥advance¥c by ¥b
¥the¥c
¥end{document}

ジャジャガッチ | コンピュータ | 21:24 | comments(0) | trackbacks(0) |

タブレット買った

GWは実家に帰省していた。
実家で触ったipadが思いのほか使いやすかったため、妻にお願いしてタブレットを買わせてもらった。初タブレット。
lenovoのヨガタブレット2 10.1インチ wifi版。OSはandroid。
小さい画面でピコピコやるのが苦手(いまだにガラケーです)なので大画面でかつ安い製品を価格コムで探して決めた。
3万円弱。安かろう悪かろうになるのを危惧していたが、一週間程使ってみて特に不具合、不都合はない。
非常に快適でノートpcを開く頻度も激減した。

今は妻とにゃんこ大戦争というゲームにはまっています。

android上で動くプログラムも作ってみたいな。
ジャジャガッチ | コンピュータ | 22:06 | comments(0) | trackbacks(0) |

ルータを新調した

息子がすごい。
拍手をしたり挙手をしたり出来るようになった。

///////////////////////////////////////////
ルータを新調した。機種名は秘密だがハイエンドモデルで当然ギガビット対応。

旧機種はio-dataのWN-GDN/R2。
仕様を見ると有線が100Mbps、無線が300Mbpsとなっている。
ん?無線の方が早いじゃん。

radishという回線速度測定サービスを利用して測ってみた。

無線:
上り→40Mbps
下り→40Mbps
有線:
上り→40Mbps
下り→70Mbps

おおう、有線も無線もあんまり変わらない。ちなみに測ったのは午後9時ごろで、3〜4回の測定平均がこれくらい。
東京サーバで精度高、圧縮効率低で測定した。

新ルータは有線が1Gbps、無線が450Mbps対応。

無線:
上り→60Mbps
下り→55Mbps
有線:
上り→300Mbps
下り→550Mbps

おおう!有線速い!8倍くらい!
無線の方は1.5倍位だからそれほどわからないかも。妻は今朝速くなったかわからないと言っていたな。
ルータの性能アップがそのまま出ている感じかな。
我が家には有線で使っているPCが2台(Linux/Windows)あって、今回の測定はWindows機で行った。
Linuxでネットをするとずっともたついて遅いな、と感じていたのだが、新ルータにしてからものすごく快適。
なぜLinuxであんなにもたついていたのだろう。Windowsの方はそうでもなかったのに。

これだけ速くなれば買ったかいがあったというものだ。
あとはルータ、lanボード、OSの設定をいじってどれだけ速度が変わるか試してみよう。
特に無線をもう少し速くしたい。

実は新ルータをセットアップしてから、旧ルータとの比較が公平でないことが気になって再度旧ルータをセットして比較した。
面倒だったけど楽しかった。すっきり。
ジャジャガッチ | コンピュータ | 23:10 | comments(0) | trackbacks(0) |

CPUにグリスぬりぬり

子どもの成長がすごい。
この頃また一つステップアップした感じがする。
壁から顔を出したり隠したりして喜んでいる。セルフいないいないばあ的な。
これがかわいすぎてかわいすぎてどうしよう。
僕のメガネを奪うのも上手になった。顔面に攻撃をしかけておいて思わずうつむいた所に狙いを定めるという策士ぶり。
末恐ろしい。

//////////////////////////////////
最近我が家のデスクトップPC2号機の調子が悪い。
ブルースクリーンが頻発する。
とりあえず箱を開けて掃除した。
ついでにCPUのグリスも塗り直した。

ほい。これが2号機のCPU。
我が家のデスクトップPCにはインテル入ってない。
ちなみに裏はこんな感じ。
ピンがいっぱい。でも改めてみるとただのICじゃんって感じがする。

でもこんなにいっぱいピンあるのにソケットにどうやって入れるのよ・・・、って心配しなくても大丈夫。
乗っけてレバーぐいってやれば簡単に入る。これがソケットね。

CPUはめてグリスぬりぬり。冷えますように。

不調の原因としてメモリの接触不良を疑い、無水エタノールで掃除してみた。
起動。うーん、だめだ。しばらくしたら落ちる。
ん、なんか焼けるようなにおいが・・・。
あ、CPUクーラの電源挿し忘れた!
CPUクーラの電源挿したら安定して動くようになりました。よかったよかった。
CPUクーラの配線には注意しましょう。
僕は二回やりました。でも壊れないのが凄い。
ジャジャガッチ | コンピュータ | 22:49 | comments(0) | trackbacks(0) |

ブログのC/C++ソースコードをかっちょよく表示する。ついでにブログデザイン変更。

子供の予防接種に行ってきた。
注射だったが泣かずにけろっとしてた。
やるな。

////////////////////////////////////////////
よくブログにソースコードを張り付けているが見づらい。
あとで見返してすこし辛いものがあるので見やすくする方法を探してみた。

ひとつめはGnu source-highlightを使う方法。
$ source-highlight -i main.cpp > test.html
でhtmlを生成できるが、色が自分の好みではなく、カスタマイズも手間がかかりそうなので断念。

次にvimのTOhtmlコマンドを使う方法。最近のvimには最初から入っている。
でも出力されるhmtlをそのままブログに張り付けると色は付かなかった。
そのまま張り付けるだけではダメらしい。色々調べたところ次のようにして出来た。
上の方にある
pre { white-space: pre-wrap; font-family: monospace; color: #000000; background-color: #ffffff; }
body { font-family: monospace; color: #000000; background-color: #ffffff; }
* { font-size: 1em; }
.Type { color: #00ff00; }
.Statement { color: #ffff00; }
.PreProc { color: #ff40ff; }
.Constant { color: #ff6060; }
をブログのCSS編集ってとこに追記する。
(実際には僕は黒背景にしたかったので最初の#000000と#ffffffを交換して追記した)

あとは下の方の<body>〜</body>をコピーして貼り付けてやればok。
#include <iostream>
#include <set>
#include <random>
#include <vector>
#include <algorithm>

int main()
{
	std::mt19937 mt(0);
	int N = 10000000;

	std::set<unsigned int> s;
	unsigned int X;

	for(int n=0;n<N;n++)
	{
		unsigned int x  = mt();
		s.insert(x);
		if(n==N/2) X = x;
	}

	if(s.find(X)!=s.end()) std::cout << "true";
 	else std::cout << "false";
 	std::cout << std::endl;

	return 0;
}

おお!かっちょいい!vimっぽい!

ついでにブログデザインも一新した。
これまでのデザインは本文の領域が狭く、ソースコードが折り返されてしまうことがよくあったので本文領域の広いデザインから選択した。
CSSとかいじれば多分広げられると思うが僕にその技術はない。

よさそうなのを選んだはいいが、フォントが小さいとか色がわかりづらいのは嫌なので結局CSSをいじることに・・・。
CSSが何なのかも知らないが、よく見るとちゃんとコメントとかあって読めないことはない。
フォントサイズとか色とか適当に変えて見やすくした。

暇を見つけて過去記事のソースコードも修正したい。

ブログのフォントとか変えたければ設定してあげるよ! >> 妻 (にゃ☆にゃ☆にゃッチ)
ジャジャガッチ | コンピュータ | 22:13 | comments(0) | trackbacks(0) |

Scratchで遊んでみる

前々から気になっていたScratchを少し触ってみた。
Scratchは子供向けのプログラミング開発環境で、しかもブラウザ上で開発、実行が出来る。
プログラムの作成はブロックをマウスで組み合わせていく。
例えば0から10までカウントするプログラムはこんな感じ。
では次のコードは何をするものでしょう?
モンテカルロ法で円周率を計算するコードでした!
Scratchで数値計算とかやっている人もいる。みんな考えることは一緒だ。
何か面白いこと出来ないかな。
ジャジャガッチ | コンピュータ | 00:22 | comments(0) | trackbacks(0) |

コイントスをシミュレーション(ベイズ統計)

 今、何度かコイントス実験を行ったものとする。
その結果に基づいて表の出る確率θを推定したい。
最も実験結果を再現しやすいθを選ぶのが最尤推定法である。

一方、ベイズ的な考え方では、θは確率変数である。
まず、事前の知識に基づいて事前分布を与える必要がある。
コインについて全く情報がない場合はすべてのθが平等だとする。
この場合は最尤推定に帰着する。

実験を何度か行って事後分布を計算した後、さらに実験を行った場合は、最初に求めた事後分布を事前分布として計算を行えばよい。
シミュレーションの目的は実験回数によって事後分布がどのように変化していくのか、また事前分布の選び方がどのように影響するのかを確認することだ。

シミュレーション結果を示す。事前分布は一様であるとした。θは0.5に設定した。
赤が3回実験後(表、裏、裏)、緑が5回実験後(表、裏、表、表、裏)の分布である。
3回実験は裏の回数の方が多いので小さい側へ偏っている。5回実験の場合も
同様の理由により大きい側へ偏っている。

次に100回実験を行ってみる。ほぼ0.5にピークがきている。

次に事前分布を二次関数にしてみた。
5回実験(表、表、裏、裏、裏)の結果を示す。
緑が事前分布である。裏の方が回数が多いにも関わらず、θの大きい側に偏っている。

100回実験結果を示す。赤が事前分布を一様としたもの、緑が二次関数にしたもの。
どちらも実験結果に偏りがあって0.5中心にはなっていないが形状はほとんど差がない。
ちなみに事前分布で0とおいた範囲は多分実験を繰り返しても0のままだと思うので少しでも可能性があれば0には設定しないほうがいいんだと思う。

ベイズ統計に関してはよくわからないところがたくさんあるので要勉強だ。

シミュレーションに用いたソースは続きから。

続きを読む >>
ジャジャガッチ | コンピュータ | 19:12 | comments(0) | trackbacks(0) |

遺伝的アルゴリズム

 友達が面白い動画を見つけたとURLを送ってきた。

物理エンジンと遺伝的アルゴリズムを組み合わせて色々と面白いことをしている動画だった。

「ブランコ 遺伝的アルゴリズム」とかで検索すると出てくると思う。

面白いのでぜひみてほしい。

遺伝的アルゴリズムは、ばっちり最適解を求めるのには不向きだけど、そこそこよい解をみつけるのには有効なアルゴリズムらしい。

とても面白いので同じようなことをしてみようと思う。

ぐぐった感じだと単純な遺伝的アルゴリズムを組むのはあまり難しくなさそう。

ただ物理エンジンをいじった経験がないのでそちらのほうがネックか。

Box2Dというフリーのライブラリを見つけたのでこれをやってみようかな。
ジャジャガッチ | コンピュータ | 20:34 | comments(0) | trackbacks(0) |
2/6PAGES | << >> |

07
--
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
--
>>
<<
--
PR
RECOMMEND
RECENT COMMENT
MOBILE
qrcode
OTHERS
Since 2013/09/17
LATEST ENTRY
CATEGORY
ARCHIVE
LINKS
PROFILE
SEARCH