タグ

ProgrammingとRandomに関するagwのブックマーク (164)

  • モンテカルロシミュレーション

    このホームページは、乱数をたくさん発生させ、確率実験を行なう手法――これをモンテカルロ・シミュレーションといいます――のオンライン教科書です。あなたのパソコンを用いて、実際にプログラミングしてWEB上で実行することができます。 C言語版はこちら 1994年に、著者はソフトバンク社から「Cによるシミュレーションプログラミング」 というを、出版しました。現在それは絶版となっています。しかしながら、その後、それを大学などの教科書に使いたい、再版しないのかなどの問い合わせが ありました。出版したときの電子ファイルが残っていたので、それのすべてをホームページで、公開することといたします。その際、ホームページ上から、直接 プログラムを実行出来るように、CプログラムをJavaアプレットに変換し、公表します。 このホームページが、シミュレーションに興味をお持ちの方、トラヒック理論の研究者などのお役に立て

  • JavascriptのMath.random()でユーザートラッキングができるという話 - kogelab::memo

    表題の件について。 地味な話ですが、javascript(というかECMAの仕様)にあるMath.random()には、乱数のシードを与える方法が無いようです。 そんなわけで、われわれ一般市民は各ブラウザが独自に実装している、謎のシードで初期化された謎のアルゴリズムで作られた乱数を通常使うわけですが。 Mozillaからこんなの出てた。 曰く、Math.random()のシードによる初期化は、ブラウジングセッションごとに1度しか行われないと。 で、シードはまあ、かぶる率そんなに高くなさそうなので、そのシードをUSERの(擬似的な)ID代わりにしてしまえば、ユーザーのトラッキングができるよーん、とのこと。 はじめ読んだとき、「おおー、かっけー!」と思ったんですが、ちょっと待て。 シードって外から取れんのか。 というわけで、色々調べたところ、各ブラウザは(多分IEも)線形合同法による擬似乱数を

    JavascriptのMath.random()でユーザートラッキングができるという話 - kogelab::memo
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • Selection (deterministic & randomized): finding the median in linear time

    agw
    agw 2010/12/08
    乱択分割統治法の計算量について。
  • 実践的アルゴリズム

  • ORWiki

    OR学会50年の歴史の中で,OR事典の編纂・改訂は通算3度目となる.いろいろな理由からOR事典編集委員会は,「OR事典」をWebに公開するという手段をとることになった.前回はCDによる出版であった. 資料編だけは「OR事典」から切り離して,OR学会の通常のホームページの中に移すことになった.これは逆瀬川浩孝委員長のアイディアである。内容の性格上,資料追加も間違いの訂正も広報委員会の責任で簡単に出来るようになる. 前回までの学会の歴史資料はそのまま残してある.今回はデータ追加作業を基に多少の資料追加を行った.前事務局長の藤木秀夫さんには,その後の学会活動全般にわたる記録をまとめて原稿を作成してもらった.学術会議関係も藤木さんが前回の形式に習って資料原稿を作成し,FMES会長の高橋幸雄さんに目を通していただいた. 各支部から増補追加の原稿が送られてきた.Webのサンプルを見てくださいと言って

  • 『100分の1を100回やってみる』

    ゲーム作家・ゲーム研究者遠藤雅伸のブログです。 ゲームに関する話題を、ビジネス、アカデミック両面からも取り上げます。 ゲームデザインにおいて初心者の陥りやすい問題の1つとして、確率に対する誤った考え方があります。 -------------------------------------------------- 課題:RPGで、ある敵を倒したら稀にアイテムが手に入る。このアイテム、敵を100匹ほど倒したら少なくとも1回くらいは出て欲しいのだが、さてどのような設定にすればいいか? -------------------------------------------------- 最も安易な考え方が、「100回に1回起きればいいことなんだから、1/100の確率でアイテム出せばいいんじゃね?」というもの。これと同じ考え方をした人に向けて、このエントリーは書かれていますので「簡単な余事象の問題

    『100分の1を100回やってみる』
  • Amazon.co.jp: 計算機シミュレ-ションのための確率分布乱数生成法: 四辻哲章: 本

    Amazon.co.jp: 計算機シミュレ-ションのための確率分布乱数生成法: 四辻哲章: 本
  • 隠れた良書「計算機シミュレーションのための確率分布乱数生成法」を大プッシュしたい - EchizenBlog-Zwei

    偶然見つけたのだが「計算機シミュレーションのための確率分布乱数生成法」が大変な良書であったので、とりいそぎメモしておく。ちゃんと読んだら後でレビューする。 書は簡単にいうと「様々な分布から乱数生成(サンプリング)するプログラム」の実装法をまとめた。確率統計のを読んだりして「○○分布からサンプリング」すれば良いことはわかったのだが、どうやって実装していいかわからず途方に暮れた経験を持った人は多いのでは。 そういった方にとって書は福音となるのではないだろうか。 とりあえず書はweb上に情報が少ないので、どんな分布を扱っているのか列挙しておく。かなり多いので驚かれるかもしれない。 [連続分布] 正規分布(Normal distribution) 半正規分布(Half Normal distribution) 対数正規分布(Log-Normal distribution) コーシー分布(

    隠れた良書「計算機シミュレーションのための確率分布乱数生成法」を大プッシュしたい - EchizenBlog-Zwei
  • nabokov7; rehash : 意外に奥が深いシャッフルアルゴリズム

    October 25, 201014:30 カテゴリプログラミング 意外に奥が深いシャッフルアルゴリズム 前の記事に引き続き,ブログチームの「シャッフルのお時間」の話をします。 毎週の進捗ミーティングのあと,次の週の監視(レビュー)相手を決めるためにシャッフルを行うのですが,ここはプログラマ集団。くじ引きとかではなく,ワンライナーでさらっとシャッフルのプログラムなどを走らせて決めたいものですよね。 ということで,進捗ミーティングの最後はシャッフルのお時間と呼ばれ,誰かひとりがプロジェクタにつながったマシン上でライブコーディングをし,その出力結果によって次週の監視相手が決まる,という儀式の時間になりました。 シャッフルの基のきまりは以下の通りです。メンバー名の配列を入力とし,「見る人→見られる人」の組み合わせを出力するプログラムを書く。「自分自身を担当する人」が発生してはダメ。その場でコー

  • マルコフ連鎖モンテカルロ法入門-1

    ※ここで解説しているお天気推移モデルはオリジナルなものですので、数値・計算等にミスがある可能性が否めませんので、もし間違いを見かけた方は優しく教えていただけると助かります。 お天気推移モデルで理解するマルコフ連鎖モンテカルロ法。2状態離散モデルの解説を中心に、メトロポリス法の解説まで行った。 次は連続モデルや熱浴法・メトロポリスヘイスティング法の解説資料も作成したい⇒完成。以下のLINKを参照下さい。http://www.slideshare.net/teramonagi/ss-5344006 誤字を修正(2010/11/01)

    マルコフ連鎖モンテカルロ法入門-1
  • /dev/random - Wikipedia

    /dev/random はUnix系オペレーティングシステム (OS) における擬似デバイスの一種であり、乱数生成器として機能する。デバイスドライバその他の情報源から集めた環境ノイズを利用して、真の乱数性を得るのが目的である。全てのUnix系OSが /dev/random およびそれに類する機能を実装しているわけではない。また、それぞれの実装が、同じように振舞うわけでもない。このような擬似デバイスを実装した最初のOSはLinuxであった。 このようなOSレベルの乱数用デバイスを実装した最初のOSカーネルが Linux であった。設計にあたっては、いかなる生成法(暗号学的ハッシュ関数など)にも脆弱性が発見され得る可能性があるという仮定を置いており、そのような脆弱性に耐性を持つよう設計されている。 この実装では、エントロピープールにおけるノイズのビット数の予測を常に保持し、このエントロピープー

  • 擬似乱数 - Wikipedia

    この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。 出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方) 出典検索?: "擬似乱数" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL (2016年9月) 擬似乱数(ぎじらんすう、pseudorandom numbers)は、乱数列のように見えるが、実際には確定的な計算によって求めている擬似乱数列による乱数。擬似乱数列を生成する機器を擬似乱数列生成器、生成アルゴリズムを擬似乱数列生成法と呼ぶ。 真の乱数列は来、規則性も再現性もないものであるため、来は確定的な計算によって求めることはできない(例:サイコロを振る時、今までに出た目から次に出る目を予測するのは不可能)。一方、擬似乱数列は確定的な計算によって作るので

  • 乱数列 - Wikipedia

    乱数列(らんすうれつ)とはランダムな数列のこと。 数学的に述べれば、今得られている数列 から次の数列の値 が予測できない数列。乱数列の各要素を乱数(らんすう)という。もう少し具体的には、漸化式や関数で定義できない数列を構成する数を乱数ということもできる。 決定的オートマトン (en:deterministic automaton) であるコンピュータでは、基的には確定的な計算によってしか数列を作ることができない。しかし、確定的な計算によって作られた数列でありながら、用途において必要とする統計的な性質に関して、サイコロなどで作られた乱数列を近似した数列の生成法があり、そのようにして生成された数列を擬似乱数列という。特にコンピュータへの実装に関しては、ビット列を生成することから Deterministic Random Bit Generator (DRBG) という語もある。「乱数列と近似

  • JAVAによるモンテカルロ・シミュレーションの世界

  • JavaScriptでXorshift - たまに成果を報告するだけ

  • MersenneTwister JavaScript Version

    March 2025 (1) January 2025 (1) November 2024 (1) July 2024 (1) June 2024 (2) January 2024 (1) September 2023 (1) April 2023 (2) March 2023 (1) November 2022 (3) October 2022 (1) September 2022 (1) June 2022 (1) July 2021 (1) May 2021 (1) April 2021 (2) February 2021 (1) January 2021 (1) September 2020 (1) July 2020 (2) March 2020 (1) August 2019 (1) April 2019 (2) August 2018 (1) May 2018 (1) Apr

    MersenneTwister JavaScript Version
    agw
    agw 2010/03/27
    メルセンヌツイスタのみならず、JavaScriptの実装に関しても大変良質なエントリ。
  • 乱数生成アルゴリズム Xorshift を random.Random のサブクラスとして実装してみた - 銀月の符号

    すごい乱数生成アルゴリズム「xorshift」 - Pashango’s Blog の Python 最高!! につられて。 random.Random を継承する形で Xorshift アルゴリズムを。なぜつくったのかまったくの謎だけど Python 最高!! だからしかたない。 メルセンヌ・ツイスタ (Mersenne Twister) のほうが高品質なので、出番はたぶんない。ホントなぜつくった、オレ? random.Random のサブクラスにすると randint や choice などのメソッドを動かすことができるのがメリット。 Python 版 まずは Pure Python で。 核となる乱数生成部は _genrand_int32 メソッド。名前の通り xor とシフト演算しかないのと、状況保持が unsinged long 4 つだけでできるのが特徴。論文にあったオリジナル

    乱数生成アルゴリズム Xorshift を random.Random のサブクラスとして実装してみた - 銀月の符号
  • MS、Webブラウザ選択画面にアルゴリズム上のバグか - @IT

    2010/03/01 ヨーロッパで出荷されるWindows PCや既存Windowsユーザーに対してマイクロソフトは、IEを含む5つのWebブラウザがランダムな順序で表示されてユーザーに選択を促す「Webブラウザ選択画面」を提供するようになった。このとき表示されるブラウザの順序が、完全なランダムではなく偏りがあると話題になっている。 問題を最初に報じたのはスロバキアの技術系サイト「DSL.sk」で、Windows 7上のIE8で、問題のブラウザ選択画面を開くと、約50%の確率でIEがいちばん最後に表示されるほか、9割近い確率でChromeが1~3番目に表示されるというデータを示している。 意図的ではない、初歩的な実装ミスか この問題について、IBMのRob Weir氏は2月27日付けのブログの中で初歩的なミスによるバグの1種ではないかと論じている。 Weir氏はマイクロソフトがJavaSc

  • ゲーム作るのにまだ乱数使ってるの? - ABAの日誌

    原始、ゲームは乱数とともにあった。インベーダーが弾を打つタイミングはでたらめで、ゲーム&ウォッチのパラシュートがどこに着水するかは誰も知りえなかった。 近年、ゲームは乱数を必要としない。きちんとしたストーリー、練りに練られたレベルデザインに沿って遊ぶゲームにおいて、コンピュータの気まぐれで展開が変わるなどもってのほかだ。 昔のゲームがなんで好んで乱数を使っていたかというと、そうした方が何度も遊んでもらえたからだ。乱数を使えば、遊ぶたびにゲームの展開が変わり、新たなチャレンジが楽しめる。特に昔のゲームは1プレイ5分とか非常に短い時間で終わるものが多かったため、乱数で変わる新たなチャレンジを何度も遊び、ハイスコアを更新しては自分の上達を確認するというのが普通だった。 最近のゲームはそういった遊び方はしない。1プレイ40時間とかいうゲームでは、乱数に頼らなくても同じ展開にめぐりあうことはない。乱

    ゲーム作るのにまだ乱数使ってるの? - ABAの日誌