レイトレ合宿9(*)のセミナー発表スライドです。 * https://sites.google.com/view/rtcamp9/home - 2023/09/08 “除算法2”追記。(@Reputelessさんありがとうございました)
こんにちは、BASEのフロントエンドチームでエンジニアリングマネージャーをやっている松原(@simezi9)です。 私は最近ではマネージャーとしてコードを書くことよりもチームの編成や採用などをメインに業務を行っているのですが、 そんな中でチラっと書いたコードで見事に落とし穴にハマって失敗をしたのでその共有記事です まえがき BASEのフロントエンドチームは現在15名ほど(うち業務委託5名)で運営されています。 この人数は今後もどんどん増えていく予定なのですが、目下全社的にリモートワークになっている事情も手伝ってメンバー同士の関係性が希薄になってしまう懸念を持っていました。 BASEの中では常に複数のプロジェクトが走っているのですが、それぞれのプロジェクトにフロントエンドエンジニアは2〜3名ずつ配置されています。 そんななかでアサインされた人同士がフロントエンドエンジニア同士であるにも関わら
世の中には、全てのパターンを網羅的に調べることができないほど複雑な事象がある。 その一部の要素に乱数を用いて網羅性の代替とすることを、人類は「シミュレーション」という科学っぽい名称で呼んだ。 しかし、乱数を用いるシミュレーション(モンテカルロ・シミュレーション)は、科学を途中過程に置いた信仰だと思う。 乱数を用いた時点で、結果がそれこそ神のみぞ知る厳密解に合致しているのか、多くの場合わからない。 そもそも、その合致を数式的に証明できるのであれば、シミュレーションなんか必要ないわけで。 それは、大規模シミュレーションとか呼ばれるものなんかで特にそうだろう。 大規模となれば、計算には莫大な時間と費用がかかる。 なので、乱数の使用数に比して、統計的信頼度を満たすほどの回数で試行するのは困難であろう。 そうなると、厳密解への合致はそのシミュレーションへの信頼感といった信仰によってしか期待できない。
2022-07-19 これらの問題を解決する Random Extension 5.x 並びに Random Extension Improvement RFC が可決され、 master に merge されました。 PHP 8.2 より利用可能になります。 https://wiki.php.net/rfc/rng_extension https://wiki.php.net/rfc/random_extension_improvement https://github.com/php/php-src/commit/4d8dd8d258ff365b146bcadcb277ede8992706d0 2022-06-18 これらの問題を解決するため、 PHP 8.2 に対して Random Extension 5.x の RFC が作成され、投票が始まっています 2021-01-15 PHP
プログラミングをやっていると、様々な乱数に出会います。乱数に関しては大勢の研究者が色々な研究結果を出しているため、種類も増え、いったいどれを使えばいいのかと悩む原因にもなります。 大勢が研究し利用している分野ですから、私以外でも大勢が乱数に関する記事を書いているため、あえて新しい記事を書く価値は高くないかもしれません。まあ、既に理解している人はここで記事を閉じるか、暇つぶし程度の感覚で読んでいただくと良いかと思います。 真乱数と疑似乱数 プログラミングの世界の中でいわゆる "乱数" として扱われることが多いのは擬似乱数です。疑似、と付くからには、これは実のところ乱数ではないと言えます。とは言え、擬似乱数を乱数でないと言ってしまうと話が終わってしまうので、疑似乱数を含む乱数を広義の乱数とします。この記事で扱うのは広義の乱数です。逆に、狭義の乱数、本物の乱数は真乱数と言います。 本物と言いまし
2016年6月24日から再開された平壌放送を通じての北朝鮮からの乱数放送(暗号放送)。本来は工作員に向けた工作活動のための放送だが、再開後の放送形態は、2000年までの放送とは大きく異なる。2017年2月に金正男氏が殺害されたときの指令に利用されたとか、5月のミサイル発射も予告されていたなどと言う報道もあったが、果たしてそうなのか。北朝鮮乱数放送の今と昔を比較した研究報告を2017年8月の第39回近隣諸国放送研究フォーラムで行った。 ■はじめに 2000年12月8日をもって廃止された北朝鮮の音声による乱数放送(A-3放送)が2016年6月24日から再開された。韓国や日本に向けた対南、対日工作のための暗号放送と言われた北朝鮮乱数放送について、2000年までの放送と、2016年の再開後の放送について、いろいろな面から比較してみることにする。 ■2000年以前の乱数放送 2000年以前の乱数放送
問 コインを100回投げて、表か裏が10回連続で出る確率は? 皆さんこの問題解けますでしょうか?私は正直解ける気がしません。そもそも何%くらいなのかすら、うまく推測できません。今日は、しかし皆さんには全然別の方法論を共有できればと思います。 その方法論とはずばり実際に投げてみましょう。「コインを100回投げて、表か裏が10回連続で出るかどうか」を100回あるいは1000回くらい試行してみたらそれなりに正しい確率が出ると思いませんか?実際にでます。 でもいくらなんでも現実にするのはつらいですよね。そこでせっかくなのでコンピュータに投げさせましょう。といっても実際に投げるのではなく、コンピュータの中で乱数(ランダム)を発生させて、それで投げていることにしましょう。プログラムで書くとこんな感じです。 コインを100回投げて、表か裏が10回連続で出るかどうか調べるプログラム。試行回数が増えるほどに
いろいろなソフトウェアで、大きいランダムな値をユニークな値とみなすということが行われている。例えばユニークな識別子としてよく使われるUUIDはただの122ビットの乱数だ。gitもSHA-1ハッシュ値が160ビットの乱数のように扱えることを期待して、それをユニークな識別子として使っていた。実際にはランダムな2つの値が同じになる確率はゼロではないのに、なぜこれが安全なやり方だと言えるのだろうか? それについてちょっと説明してみよう。 あるシステムが、乱数で生成された識別子の衝突のなさに依存しているとして、仮に衝突が発生した場合、相当悪い結果、例えば復旧不可能な形でデータベースが壊れてしまうとしよう。これはどれくらい危険なのだろうか? 数学の問題で、学校のクラスの中で同じ誕生日の人が1組以上いる可能性は思ったより高いという話を聞いたことがあると思う。あるランダムに生成された値が衝突する確率という
深津 貴之 / THE GUILD / note @fladdict アニメーションの監修で、「 Random();の代わりに、(Random()+Random()+Rrandom()+Random()+Random())/5.0f; を使うと、動きにコクが出る」と言ったら、ピュアオーディオ扱いされるのですが・・・これは根拠のあるアルゴです。 2016-11-03 11:29:43 深津 貴之 / THE GUILD / note @fladdict 乱数のコクをチューニングする話をすると、なぜピュアオーディオ扱いされるのか? みんな乱数の波動を、もっと体で感じようよ。全然ヴァイブレーションが違うよ。 2016-11-03 11:36:47
科学でありアートでもある、それが数学。 上のgif画像はChristian Ilies Vasileさんが制作した数字のπをヴィジュアル化したもの。美しすぎてため息が出ます。 ヴィジュアル化の方法は以下の通り。まず円を10等分して数字の0から9を割り振ります。πは3.14159…なので3から始めて1に線を引き、次に4へと線を引き、そこから5へと線を引き…という具合に続けていきます。しばらくすると下のような画像が出来上がります。 動画はこちら。 さらに2つの数字のペアが繰り返された回数を点のサイズで表したのがこちらの画像。点が大きければ大きいほど、そのペアの出現回数が多いことを示しています。 海外の大学では、数学専攻の学生が学位取得時に文学士号(Bachelor of Arts)か理学士号(Bachelor of Science)か選べる大学がありますが、こういうのを見ると納得ですね。 クリ
みなさん、こんにちは、今回は乱数の話です。 特に複数機種でのコンシューマ機でゲームを開発をしていると、機種間で乱数値を統一するために乱数生成アルゴリズムを自作しますよね。 そこでよく使われるアルゴリズムが「線形合同法」です、内容は至って簡単で、以下の漸化式を使います。 A,B,Mは定数で、どの値が入るかは処理系依存です。 例えばUnixなどの処理系ではA=1103515245,B=12345,M=2147483647などが入ります。 C言語ですと以下のようになります。 static unsigned int x=1; void srand(unsigned int s) { x=s; } unsigned int rand() { x=x*1103515245UL+12345UL; return x&2147483647UL; } この「線形合同法」は計算が簡単で高速ですから、いろいろな環
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く