気になったネタリンク

このブログはバラエティー番組です。

批判的な文章についてはその対象への励ましです。

また、間違った文章があった場合それはイメージ・演出であるため問題ありません。

 

2017-02-22

totoBIGの件は何が問題なのか、なるべく分かりやすく説明してみる

http://mubou.seesaa.net/article/447207389.html

ほう。

totoBIGがどんなギャンブルなのか分からなかったので、最初いまいちピンと来なかったのですが…。

 

・購入するとランダムで乱数(0〜2)が14個出力され、それが自分のくじとなる

・そのくじの数値14個と、未来に開催されるスポーツの試合結果が一致すると賞金がもらえる

・14個すべて一致する確率は1/480万

・ある人が5個くじを購入した

・その人が翌日、5個じゃ足りないなとまた10個購入した

・あれ? 10個新しく購入したうちの最初の5回分…。前日買ったくじとまったく配列一緒やんけ!

・くじの配列はランダムなはずだろ!

・「14個の乱数×5回」が完全一致する確率は2,503,160,000,000,000,000,000,000,000,000,000分の1

・なんか不正しとるんじゃないか!?

 

というのが今までの流れ。

まぁプログラマからしてみると「疑似乱数のシード値が一致したんだろうな。低品質プログラムだな。これで公営ギャンブルとか笑わせてくれるわ」ってところでしょうか。

 

さて、結論はたぶんこれでOKなのですが、ふと気になったことが。

一般的に、疑似乱数のシード値は64bitなんですよね。

なので、2,503,160,000,000,000,000,000,000,000,000,000分の1ってことはなくて、一致する確率はぐっと下がって18,446,744,073,709,551,616分の1程度になります。

ぐっと(笑)

 

と思いきや、今回のようなまぬけな実装をする会社ですから、もっとまぬけなことになっているはず。

C言語のsrand(unsigned int);を使っている場合を考えると、32bitOSならシード値は32bitになるわけです。

4,294,967,296分の1か。

おお! ぐぐっと一致する確率が下がりました。

43億分の1くらいです。

これなら、偶然の一致である可能性もなくはないですね!

 

まとめ。

プログラマーとして仕事してるなら、もっとまじめに勉強しろ。

トラックバック - http://d.hatena.ne.jp/kanoke/20170222

2017-02-05 ファイアーエムブレム ヒーローズ 感想レビュー

[] ファイアーエムブレム ヒーローズ

FE同人イラスト集&動物将棋。

って感じ。

軍隊を動かしているフレーバーもなければ、まともな救国ストーリーもない。

ファイアーエムブレムだと思わなければそれなりに面白いパズルゲームなんじゃないかな。

懐かしのシーダやマリアゴードン、リフ、ミネルバパオラ、エスト、カチュアといった面々の、今風同人イラスト集という側面でも出来は悪くはない。

サジやマジまでいるようなので、キャラはかたっぱしから採用されているのだと思われる。

 

単に、FEにストーリーやシビアさを求める私には、致命的に合わなかっただけの話だ。

※箱田真紀さんのマンガは当然持っている

CDドラマも当然持っている

※藤森ナッツさんのも好きだったぞ

 

信念をもって生きた英雄たちが「なんか召喚されて操られてメンヘラ姫に忠誠を誓わされてます。やられたら成仏するよ^q^」と雑な扱われ方をしているのを見ると、えらく腹立たしい。

マケドニア王国(やアカネイア連合王国)以外に忠誠を誓うミネルバなんて、見たくもなかったし、そんなものはミネルバではない。

トラックバック - http://d.hatena.ne.jp/kanoke/20170205

2017-02-04

[] 高速なハッシュテーブル設計する

http://postd.cc/designing-a-fast-hash-table/

STLのハッシュテーブルは、制限がついているのでちと遅いため、自作しよう。

というお話

トラックバック - http://d.hatena.ne.jp/kanoke/20170204

2017-01-29

[] 必要そうなサイト色々2

LibTomProject

http://www.libtom.net/

多倍長整数ライブラリや、暗号ライブラリなど。

ライセンスがゆるゆる。

Crypto++も素晴らしいのだが、最適化しても実行ファイルサイズが簡単に1MBくらい増えるのでこちらを調査してみる。

Releaseビルドのlibを使った時に、_aes_descが未解決エラーを出すが、原因はtomcrypt.libのプロジェクト設定にある。

Debug版にはカスタムビルドが定義されているのだが、Release版にはないのが原因。

http://stackoverflow.com/questions/15557035/visual-studio-2010-libtomcrypt-build-or-library-linking-error

プロジェクトファイルに下記の後半を書き加える(前半は最初から存在する)

    <CustomBuild Include="src\ciphers\aes\aes.c">
      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">cl /nologo /MTd /W3 /Gm /EHsc /ZI /Od /I "src\headers" /I "..\libtommath" /D "_DEBUG" /D "LTM_DESC" /D "WIN32" /D "_MBCS" /D "_LIB" /D "LTC_SOURCE" /D "USE_LTM" /Fp"Debug/libtomcrypt.pch" /Fo"Debug/" /Fd"Debug/" /FD /RTC1 /c %(FullPath)  
cl /nologo /DENCRYPT_ONLY /MTd /W3 /Gm /EHsc /ZI /Od /I "src\headers" /I "..\libtommath" /D "_DEBUG" /D "LTM_DESC" /D "WIN32" /D "_MBCS" /D "_LIB" /D "LTC_SOURCE" /D "USE_LTM" /Fp"Debug/libtomcrypt.pch" /Fo"Debug/aes_enc.obj" /Fd"Debug/" /FD /RTC1 /c %(FullPath)</Command>
      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Debug/aes.obj;Debug/aes_enc.obj;%(Outputs)</Outputs>
    </CustomBuild>
    <CustomBuild Include="src\ciphers\aes\aes.c">
      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">cl /nologo /MT /W3 /O2 /I "src\headers" /I "..\libtommath" /D "NDEBUG" /D "LTM_DESC" /D "WIN32" /D "_MBCS" /D "_LIB" /D "LTC_SOURCE" /D "USE_LTM" /Fp"Release/libtomcrypt.pch" /Fo"Release/" /Fd"Release/" /FD /c %(FullPath)  
cl /nologo /DENCRYPT_ONLY /MT /W3 /O2 /I "src\headers" /I "..\libtommath" /D "NDEBUG" /D "LTM_DESC" /D "WIN32" /D "_MBCS" /D "_LIB" /D "LTC_SOURCE" /D "USE_LTM" /Fp"Release/libtomcrypt.pch" /Fo"Release/aes_enc.obj" /Fd"Release/" /FD /c %(FullPath)</Command>
      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Release/aes.obj;Release/aes_enc.obj;%(Outputs)</Outputs>
    </CustomBuild>

Boost C++ Libraries日本語コミュニティのWebサイト

https://boostjp.github.io/

Boost逆引きリファレンスが便利。

C++1zに現状入る予定の言語拡張

http://www.slideshare.net/faithandbrave/c1z-draft

だいぶ実装済みになったので、微妙ものばかり残ってますな。

評価順序はコンパイラの最適化のために自由度をあげていたみたいですが、実質みんな同じになってたし。

それなら厳密に定義されてくれた方がありがたい。

地味に便利かもしれん。

も便利かも? sprintfいちいち呼ぶの面倒だったしなー。

システムコールについてどれくらいご存じですか?

http://www.atmarkit.co.jp/ait/articles/1111/16/news161.html

最近コンテキストスイッチの挙動に興味津々なので。

IPv6ソケットプログラミング

http://www.nslabs.jp/socket.rhtml

最近IPv4とIPv6両方対応しろと、世間がうるさいので。

トラックバック - http://d.hatena.ne.jp/kanoke/20170129

2017-01-15

[] 必要そうなサイト色々

サーバーマシン1台で同時接続者数1万名を実現するにはどうすればいいのかというノウハウと考え方

http://gigazine.net/news/20120831-10000-jointer-1-server-cedec2012/

暗号ライブラリ boostライセンス

https://www.cryptopp.com/

xorshift plus

http://xoroshiro.di.unimi.it/

高速・省メモリの乱数。mtの代わりになりそう。

C/C++向け多倍長整数資料を探している人のためのガイド

http://yugui.jp/articles/283

ここでは、Boost.Multiprecisionから提供される多倍長整数の、基本的な使い方を示す。

https://boostjp.github.io/tips/multiprec-int.html

プログラミングと多倍長演算に関するmakayaのはてなブックマーク

http://b.hatena.ne.jp/makaya/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0/%E5%A4%9A%E5%80%8D%E9%95%B7%E6%BC%94%E7%AE%97/

冪乗法

http://www2.cc.niigata-u.ac.jp/~takeuchi/tbasic/BackGround/power.html

基礎から学ぶwindowsネットワーク

http://www.atmarkit.co.jp/ait/articles/0205/17/news002.html

an Advanced Optimization for x86-CPU

http://herumi.in.coocan.jp/

CPU関連の詳しい解説サイト

トラックバック - http://d.hatena.ne.jp/kanoke/20170115