並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 550件

新着順 人気順

乱数の検索結果1 - 40 件 / 550件

  • 乱数にコクを出す方法について

    深津 貴之 / 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

      乱数にコクを出す方法について
    • [CEDEC 2014]「ゲーム世界を動かすサイコロの正体 〜 往年のナムコタイトルから学ぶ乱数の進化と応用」 - 4Gamer.net

      [CEDEC 2014]ナムコ作品で見る乱数の歴史。「ゲーム世界を動かすサイコロの正体 〜 往年のナムコタイトルから学ぶ乱数の進化と応用」レポート ライター:箭本進一 神奈川のパシフィコ横浜で行われた,ゲーム開発者向けイベントCEDEC 2014の最終日である2014年9月4日,「ゲーム世界を動かすサイコロの正体 〜 往年のナムコタイトルから学ぶ乱数の進化と応用」という講演が行われた。 登壇したバンダイナムコスタジオ HE技術部 加来量一氏 この講演のユニークな点は,旧ナムコの作品を「乱数」という視点から振り返るということだ。バンダイナムコスタジオ HE技術部のプログラマーである加来量一氏は,旧ナムコの初期作品50本を解析し,それぞれの時代でどのような乱数が使われていたかを特定した。そこから見えてくる乱数技術改良の歴史を見ていくというのが,講義の主旨なのである。 1980年代のナムコアーケ

        [CEDEC 2014]「ゲーム世界を動かすサイコロの正体 〜 往年のナムコタイトルから学ぶ乱数の進化と応用」 - 4Gamer.net
      • Google Chromeが採用した、擬似乱数生成アルゴリズム「xorshift」の数理

        2015年12月17日、Google Chrome の JavaScript エンジン(処理系)である V8 の公式ブログにて、 JavaScript の標準的な乱数生成APIである Math.random() の背後で使われているアルゴリズムの変更がアナウンスされました。 Math.random() 関数は JavaScript を利用する際には比較的よく使われる関数ですので、親しみのある方も多いのではないかと思います。 新たなバグの発見や、従来より優秀なアルゴリズムの発見によってアルゴリズムが変更されること自体はそれほど珍しくはないものの、 技術的には枯れていると思われる Math.random() のような基本的な処理の背後のアルゴリズムが変更されたことに驚きを感じる方も少なくないかと思いますが、 それ以上に注目すべきはその変更後のアルゴリズムです。 実際に採用されたアルゴリズムの原

          Google Chromeが採用した、擬似乱数生成アルゴリズム「xorshift」の数理
        • 乱数生成器とゲームと諜報活動の話|Rui Ueyama

          ゲームなどを作っているとランダムさが必要になることがあるけど、コンピュータは基本的に毎回全く同じように動くので、乱数を作り出すのはそう簡単なことではない。Wi-FiやHTTPSなどの暗号は乱数のランダムさに本質的に依存しているので、高品質な乱数生成は世の中的にも重要な話題である。ここでは乱数生成について話をしてみよう。 ゲームではイベントがプレイヤーに予測不可能であればよいだけなので、真の乱数列ではなく擬似乱数列というものを使うことが多い。擬似乱数列は人間にはランダムにみえるけど、実際は何らかの数式によって順番に生成されているだけの数の列で、初期値を毎回違うものにしておくと、人間には毎回違う数列が生成されるようにみえる。初期値には現在時刻を使うことが多い。現在時刻は普通の用途では毎回違うからだ。 昔のゲーム機は現在時刻の設定がなかったので、ファミコンなどでは、起動してからの経過時間を疑似乱

            乱数生成器とゲームと諜報活動の話|Rui Ueyama
          • 良い乱数・悪い乱数

            C言語標準ライブラリの乱数rand( )は質に問題があり、禁止している学会もある。 他にも乱数には様々なアルゴリズムがあるが、多くのものが問題を持っている。 最も多くの人に使われている乱数であろう Visual Basic の Rnd の質は最低である。 そもそも乱数とは 乱数とは、本来サイコロを振って出る目から得られるような数を意味する。 このような乱数は予測不能なものである。 しかし、計算機を使って乱数を発生させた場合、 次に出る数は完全に決まっているので、予測不能とはいえない。 そこで、計算機で作り出される乱数を疑似乱数(PRNG)と呼び区別することがある。 ここでは、特にことわらない限り乱数とは疑似乱数のことを指すとする。 計算機でソフト的に乱数を発生させることの最大のメリットは、 再現性があることである。 初期状態が同じであれば、発生する乱数も全く同じものが得られる。 このことは

            • 旧日本海軍、乱数表を使い回し 山本巡視電は指示に反する運用 米が暗号解読、長官機撃墜・機密解除史料:時事ドットコム

              旧日本海軍、乱数表を使い回し 山本巡視電は指示に反する運用 米が暗号解読、長官機撃墜・機密解除史料 2023年08月04日08時00分配信 旧日本海軍の山本五十六連合艦隊司令長官(AFP時事) 太平洋戦争中の1943年4月18日、前線巡視に向かう山本五十六連合艦隊司令長官の搭乗機が撃墜され、長官が戦死した事件で、その2カ月前に旧日本海軍が異なる暗号書の間で乱数表の使い回しを命じていたことが分かった。機密解除された米軍史料を収集した戦史研究家の原勝洋さん(81)が、時事通信の取材に明らかにした。長官の行動予定を記した暗号電が、乱数表変更の指示に反する形で作成されたことも判明。暗号は米側に正確に解読され、撃墜を招く結果となった。 長官の死から80年、真実が今 機密情報、日米で懸け離れた認識 旧海軍の暗号を巡り、機密保全上、極めて問題のある使用法を中央が命じ、出先も不適切に運用したことが文書で裏

                旧日本海軍、乱数表を使い回し 山本巡視電は指示に反する運用 米が暗号解読、長官機撃墜・機密解除史料:時事ドットコム
              • プレイヤーが自然に感じる乱数の作り方 - A Successful Failure

                2015年11月10日 プレイヤーが自然に感じる乱数の作り方 Tweet ゲームでは擬似乱数がよく使われるが、ある種のゲームは数学的に精度の高い擬似乱数(たとえばMT)を用いているにも関わらず、コンピュータが有利になるように乱数を操作していると批判に晒されている。 実際、数学的に正しい乱数と、プレイヤーが自然と感じる乱数には、ある種の差が存在する。北陸科学技術大学院大学の池田研究室では、プレイヤーに自然に感じる乱数の生成に関する研究を行っている。 プレイヤーが不自然に感じる理由 数学的に正しい乱数に対してプレイヤーが不自然に感じる理由としては認知バイアスが考えられる。特に本事象に関連する認知バイアスとして、次が挙げられている[1]。 確証バイアス: 人は自分のもつ仮説に一致する情報を求め、反証となる証拠を避ける傾向がある。ひとたび、サイコロが操作されていると感じると、それ以降、その仮説に都

                  プレイヤーが自然に感じる乱数の作り方 - A Successful Failure
                • 鍵生成には暗号論的に安全な乱数を使おう

                  SSHの鍵生成には暗号論的に安全な疑似乱数を使おうという話。 暗号論的に安全ではない疑似乱数がどれだけ危険かというのを、簡単なCTFを解くことで検証してみました。 背景 SSH公開鍵に自分の好きな文字列を入れる、という記事を読みました。 かっこいいSSH鍵が欲しい 例えばこのSSH公開鍵、末尾に私の名前(akiym)が入っています。 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFC90x6FIu8iKzJzvGOYOn2WIrCPTbUYOE+eGi/akiym そんなかっこいいssh鍵が欲しいと思いませんか? かっこいい!真似してみたい! そこまではいいんですが、問題は実装です。 秘密鍵を生成する際の乱数生成には高速化のために Goのmath/randを使っていますが、乱数が用いられるのは公開しない秘密鍵自体であり、このアルゴリズム自体はLagged Fib

                  • 乱数について本気出して考えてみる|TechRacho by BPS株式会社

                    プログラミングをやっていると、様々な乱数に出会います。乱数に関しては大勢の研究者が色々な研究結果を出しているため、種類も増え、いったいどれを使えばいいのかと悩む原因にもなります。 大勢が研究し利用している分野ですから、私以外でも大勢が乱数に関する記事を書いているため、あえて新しい記事を書く価値は高くないかもしれません。まあ、既に理解している人はここで記事を閉じるか、暇つぶし程度の感覚で読んでいただくと良いかと思います。 真乱数と疑似乱数 プログラミングの世界の中でいわゆる “乱数” として扱われることが多いのは擬似乱数です。疑似、と付くからには、これは実のところ乱数ではないと言えます。とは言え、擬似乱数を乱数でないと言ってしまうと話が終わってしまうので、疑似乱数を含む乱数を広義の乱数とします。この記事で扱うのは広義の乱数です。逆に、狭義の乱数、本物の乱数は真乱数と言います。 本物と言いまし

                      乱数について本気出して考えてみる|TechRacho by BPS株式会社
                    • 十分大きな乱数をユニークな識別子として使うのがなぜ安全なのか|Rui Ueyama

                      いろいろなソフトウェアで、大きいランダムな値をユニークな値とみなすということが行われている。例えばユニークな識別子としてよく使われるUUIDはただの122ビットの乱数だ。gitもSHA-1ハッシュ値が160ビットの乱数のように扱えることを期待して、それをユニークな識別子として使っていた。実際にはランダムな2つの値が同じになる確率はゼロではないのに、なぜこれが安全なやり方だと言えるのだろうか? それについてちょっと説明してみよう。 あるシステムが、乱数で生成された識別子の衝突のなさに依存しているとして、仮に衝突が発生した場合、相当悪い結果、例えば復旧不可能な形でデータベースが壊れてしまうとしよう。これはどれくらい危険なのだろうか? 数学の問題で、学校のクラスの中で同じ誕生日の人が1組以上いる可能性は思ったより高いという話を聞いたことがあると思う。あるランダムに生成された値が衝突する確率という

                        十分大きな乱数をユニークな識別子として使うのがなぜ安全なのか|Rui Ueyama
                      • 「一様乱数の平均値を正規乱数として代用する」という話をゆるふわ統計的に検証する

                        「一様乱数を足し合わせて平均値をとった値は正規分布っぽくなるよ」というツイートを見かけて、「それって統計的にどうなんだろう?」という疑問が湧いたので検証してみました。 はじめに 昨日・一昨日ぐらいに Twitter 上でちょっとした話題になっていた アニメーションの監修で、「 Random();の代わりに、(Random()+Random()+Rrandom()+Random()+Random())/5.0f; を使うと、動きにコクが出る」と言ったら、ピュアオーディオ扱いされるのですが・・・これは根拠のあるアルゴです。 — 深津 貴之 (@fladdict) 2016年11月3日 というツイートに関連して、「一様乱数の平均値を正規乱数として代用する」的なツイートをちらほら見かけて気になっていたので、統計的に検証してみましたよ、というブログエントリです (このツイート自体に対して揶揄するつも

                          「一様乱数の平均値を正規乱数として代用する」という話をゆるふわ統計的に検証する
                        • 勝田敏彦/乱数の本「でたらめの科学」発売中です on Twitter: "米パデュー大が開発した「世界で最も白い塗料」は太陽光の98.1%を反射する。反射率80-90%の市販品だと日照で温まるが、この塗料は冷える。赤外線による放射を考えると熱収支がマイナスになるためで、屋根に塗ると電源不要の冷房が実現す… https://t.co/F8M3YOfJmz"

                          米パデュー大が開発した「世界で最も白い塗料」は太陽光の98.1%を反射する。反射率80-90%の市販品だと日照で温まるが、この塗料は冷える。赤外線による放射を考えると熱収支がマイナスになるためで、屋根に塗ると電源不要の冷房が実現す… https://t.co/F8M3YOfJmz

                            勝田敏彦/乱数の本「でたらめの科学」発売中です on Twitter: "米パデュー大が開発した「世界で最も白い塗料」は太陽光の98.1%を反射する。反射率80-90%の市販品だと日照で温まるが、この塗料は冷える。赤外線による放射を考えると熱収支がマイナスになるためで、屋根に塗ると電源不要の冷房が実現す… https://t.co/F8M3YOfJmz"
                          • いつからその方法で偏りのない乱数が得られると錯覚していた? - アスペ日記

                            私はつい最近まで勘違いしていました。 ここのページに書いてあるような方法で、一様分布する整数が得られると。 int random(int n) { return (int)(( rand() / (RAND_MAX + 1.0) ) * n); } この方法、一見すると実に一様分布が得られそうに見えるんですよね。 どういう思考回路を通っているかというのを自己分析すると、次のような感じです。 1. rand() では 0〜RAND_MAX のランダムな整数が得られる。 2. それを RAND_MAX + 1 で割ると、[0, 1) に一様分布する実数が得られる。 3. [0, 1) の一様な実数を n 倍して小数点以下を切り捨てたら、0 から n-1 に一様分布する整数が得られる。 これの罠なところは、1 と(特に)3 が正しいというところだと思います。 ただ、2 がダウト。 思いっきりダウ

                              いつからその方法で偏りのない乱数が得られると錯覚していた? - アスペ日記
                            • せっき~のゲーム屋さん ドルアーガの塔 乱数の工夫の正体

                              [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。 CEDECの講演 「ゲーム世界を動かすサイコロの正体 ~ 往年のナムコタイトルから学ぶ乱数の進化と応用」 より、 乱数を使った ドルアーガの塔の 迷路生成のアリゴリズムについて紹介です。 講演内容は、こちらです http://sekigames.gg-blog.com/Entry/288/ 講演者の方も、 「ナムコの乱数を取り上げるなら、ドルアーガの塔をせざるえない」 という程、外せない内容との事です 「このテーマだけで講演時間を全て使っても説明しきれない」 (講演では、時間の関係で 触りのみでしたので ある程度、せっき~の解釈で補完しています) -------------------------------------------------------------------

                              • Daiyuu Nobori (登 大遊) on Twitter: "ファイルをZIPで暗号化し、まずZIPをメールで送り、しばらくして別メールで8文字程度の乱数パスワードを送るという謎のプロトコルが日本企業で流行っているが、ZIPのパスワードは総当たりでかなり高速に解析できるし、そもそもパスワードをメールで送っているので効果が疑問。"

                                ファイルをZIPで暗号化し、まずZIPをメールで送り、しばらくして別メールで8文字程度の乱数パスワードを送るという謎のプロトコルが日本企業で流行っているが、ZIPのパスワードは総当たりでかなり高速に解析できるし、そもそもパスワードをメールで送っているので効果が疑問。

                                  Daiyuu Nobori (登 大遊) on Twitter: "ファイルをZIPで暗号化し、まずZIPをメールで送り、しばらくして別メールで8文字程度の乱数パスワードを送るという謎のプロトコルが日本企業で流行っているが、ZIPのパスワードは総当たりでかなり高速に解析できるし、そもそもパスワードをメールで送っているので効果が疑問。"
                                • 乱数チューニングによる動きのコク

                                  乱数チューニングによる動きのコク 1. 一様乱数 いわゆるMath関数による乱数。 雑味や臭みが強く、そのままでは使い物にならない。 2. 雑味を取り除いた乱数 下処理として臭みや雑味を取り除いた状態。一様乱数特有の発作的なガタツキがないのがわかるだろうか? 過去2フレームに、距離33%以内の重複数が出ないようになっている。 シャッフルやスロットのアニメ処理など、2連続で同じ数字が重なるとバグって見える表現に有効。 3. コクのある乱数 乱数の旨味が濃縮された状態。中心極限定理により、自然な風合いに濃縮されている。 加算式による天然の正規分布は、ボックスミューラー法の養殖された乱数と違い、加算回数で生産者ごとの味わいが出せる。 パーティィクルや自然シミュレーションと相性が良い。 4. 芳醇なまろ味を出した乱数 口に含んだ後に、豊かな香りが広がる乱数。移動平均により連続性を出すことで、揺らぎ

                                  • 放射性物質を用いて量子乱数を生成してしまう猛者が現れる

                                    データの暗号化やプログラミングでも使用される乱数は、定量的なアルゴリズムを用いて生成する擬似乱数や、CPUや通信機器のノイズを用いて生成する物理乱数がありますが、いくつかの乱数の中でも最も信頼性が高いとされる量子乱数を、放射性物質を用いて生成してしまう猛者がGitHub上に現れ、乱数作成機器の仕様とソースコードを公開しています。 GitHub - nategri/chernobyl_dice: A quantum random number generator with a Cold War aesthetic. https://github.com/nategri/chernobyl_dice 「Chernobyl Dice(チェルノブイリのサイコロ)」は、エントロピー源として弱放射性物質の核分裂反応を利用した量子乱数生成器です。Chernobyl Diceは基板となるArduino N

                                      放射性物質を用いて量子乱数を生成してしまう猛者が現れる
                                    • PHP の乱数実装がグダグダな話

                                      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

                                        PHP の乱数実装がグダグダな話
                                      • 東北大、物理的な“真性乱数発生器”を実現する単一光子の発生に成功

                                          東北大、物理的な“真性乱数発生器”を実現する単一光子の発生に成功
                                        • シミュレーションとは、乱数を呪文とした「神への祈り」である

                                          世の中には、全てのパターンを網羅的に調べることができないほど複雑な事象がある。 その一部の要素に乱数を用いて網羅性の代替とすることを、人類は「シミュレーション」という科学っぽい名称で呼んだ。 しかし、乱数を用いるシミュレーション(モンテカルロ・シミュレーション)は、科学を途中過程に置いた信仰だと思う。 乱数を用いた時点で、結果がそれこそ神のみぞ知る厳密解に合致しているのか、多くの場合わからない。 そもそも、その合致を数式的に証明できるのであれば、シミュレーションなんか必要ないわけで。 それは、大規模シミュレーションとか呼ばれるものなんかで特にそうだろう。 大規模となれば、計算には莫大な時間と費用がかかる。 なので、乱数の使用数に比して、統計的信頼度を満たすほどの回数で試行するのは困難であろう。 そうなると、厳密解への合致はそのシミュレーションへの信頼感といった信仰によってしか期待できない。

                                            シミュレーションとは、乱数を呪文とした「神への祈り」である
                                          • SFC版風来のシレンの乱数生成アルゴリズムの話 考察編 - Qiita

                                            この記事は続編です。 前回の記事で、SFC版風来のシレンのROMデータの解析内容を元に乱数がどのようにして生成されているかを解説しています。そちらを読んでからこの記事を読んでいただくと、より内容を理解しやすいかと思います。 前回の記事:SFC版風来のシレンの乱数生成アルゴリズムの話 解析編 SFC版風来のシレンの乱数の品質を調べる さて前回の記事でSFC版風来のシレンの乱数生成アルゴリズムが線形帰還シフトレジスタの一種であることが分かりました。 しかし乱数生成アルゴリズムは理解したものの、それによって生成された乱数が妥当な物なのかというのはアルゴリズムを見ただけでは分かりません。 シレンの乱数は偏りやすいと断言できるような目に見えて質が悪いものなのでしょうか。 この項でそれを考察してみたいと思います。 先にお断りしておきますが、本気で定量的・客観的に乱数の品質を検証しようと思うと本格的な統

                                              SFC版風来のシレンの乱数生成アルゴリズムの話 考察編 - Qiita
                                            • [0.0, 1.0) の乱数を得るための“本当の”方法

                                              レイトレ合宿9(*)のセミナー発表スライドです。 * https://sites.google.com/view/rtcamp9/home - 2023/09/08 “除算法2”追記。(@Reputelessさんありがとうございました)

                                                [0.0, 1.0) の乱数を得るための“本当の”方法
                                              • インタラクティブ・プログラミング勉強会 第1回 乱数 | fladdict

                                                巷では、スマホは「手触り」が重要・・・って話が持ち上がりつつあるが、使い易さと気持ちよさを両方できる人材が不足している。広告Flash業界で培われたインタラクションのノウハウは、だんだんと失伝しつつあり、ビジュアルや動きをちゃんとコーディングできるスマホ系の人材なかなかいない。新しく勉強するパスもほとんどない。 そんなわけでTHE GUILDの社員研修として勉強会をすることに。目標は1年ぐらいでこの程度のモリモリ動くものを作れるようにすること。で、2年目に動きや手触りに、合理性や必然性、使い易さを付加できるとこまでもっていく。 第1回はインタラクティブの根幹となる乱数について。 1: 乱数とは ランダムな値を返す関数、機能。 乱数はインタラクティブ・プログラミングの根源。静的な絵とは根本に異なる、永遠に定着しない絵を作り出す。 インタラクティブなプログラミングでは、知識以上にその応用力が問

                                                  インタラクティブ・プログラミング勉強会 第1回 乱数 | fladdict
                                                • PHPのセッションIDは暗号論的に弱い乱数生成器を使っており、セッションハイジャックの危険性がある : DSAS開発者の部屋

                                                  下記の文章は、PHPのセッションIDに対する攻撃についてFull Disclosure MLに2010年に投稿された文章を和訳したものです。訳者の意見としては、攻撃の成立条件は極めて厳しく、そこまで深刻度は高くないと考えています。 とはいえ、疑似乱数列への攻撃がどのように行われるのか、その可能性を示す文章は比較的珍しいもののように思います。暗号論的に安全な疑似乱数とは何か、なぜ必要なのかといった内容を間接的に教えてくれる面白い文章だと感じましたので、今回翻訳してみました。 (以下、原文の和訳です) 原文:http://seclists.org/fulldisclosure/2010/Mar/519 Advisory (c) 2010 Andreas Bogk <andreas () andreas org> Product:PHP Version:5.3.2 以降 脆弱性の種類:暗号論的な

                                                    PHPのセッションIDは暗号論的に弱い乱数生成器を使っており、セッションハイジャックの危険性がある : DSAS開発者の部屋
                                                  • Android乱数実装に不具合、36万超のアプリで影響の可能性 - シマンテック

                                                    シマンテックは公式ブログの記事「Android の暗号化に関する問題が数十万ものアプリに影響する恐れ」において、Androidの一部のバージョンにおいて乱数生成の機能に問題があり、同乱数機能を使用するアプリケーションがセキュリティ上の問題を抱えている可能性があることを伝えた。360,000を超えるアプリがセキュリティ脆弱性を抱えている可能性があり注意が必要。Android 4.2 Jelly Bean以降では問題の乱数機能が再実装されたため影響を受けないという。 問題があるのはSecureRandomクラス。このクラスが生成する乱数に問題があり、簡単に推測されたり同じ乱数が使われる可能性があるという。乱数はセキュリティ上重要な役割を担っており、偏りのある乱数では安全性を確保できなくなる。 Net Applicationsの報告によると、2013年7月の段階でAndroid 4.2よりも前の

                                                    • 乱数のたのしい話と遺伝アルゴリズム - きしだのHatena

                                                      金曜日の「プログラマのための数学勉強会@福岡」で乱数の話をしてきました。 プログラマのための数学勉強会@福岡 #3 - connpass で、乱数の生成だとか、クイックソートや素数判定などの乱択アルゴリズムの話とかをしました。 乱数タノシイヨ 乱数のたのしい話 from なおき きしだ その中で、遺伝アルゴリズムで巡回セールスマン問題(TSP)を解くというのをやってみました。遺伝アルゴリズム、すいぶん昔から名前は知ってて、どういうアルゴリズムかも知ってて、実装もそんな難しくないと知りつつ、書く機会がありませんでした。なので、この機会に書いてみようと。 とりあえず最初に完全にランダムでTSPを解いてみます。 TSP with random ぐちゃぐちゃですね。 下部のグラフはその時点での最短距離。最初に距離が短いものをみつけていくけどだんだんみつかりにくくなる、という感じになっています。 1

                                                        乱数のたのしい話と遺伝アルゴリズム - きしだのHatena
                                                      • 最近のCPUでは乱数生成がはやい話

                                                        Ivy Bridge以降のCPUではCPU内に乱数生成器が含まれています。それに対応した最近のrngdをつかうとそれなりに乱数生成が速くてしあわせになれます。 linuxでは乱数を取得するために /dev/random と /dev/urandom の2種類のデバイスがあります。それぞれの説明は man 4 random にみっちり書いてありますが、かいつまんで言うと: random: カーネルがあつめてきたノイズを元に品質の高い疑似乱数を生成します。ノイズが不足するとblockします。 urandom: カーネルがあつめてきたノイズを元にそこそこの品質の疑似乱数を生成します。品質はそこそこですがblockしないので速いです。 ためしにcat /dev/random とかすると1kとか4kくらい乱数が出力されて止まってしまう。これでは割と足りないので選択肢が2種類。1) 品質をあきらめてu

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

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

                                                            ゲーム作るのにまだ乱数使ってるの? - ABAの日誌
                                                          • ハードウェア乱数生成器は信頼できるか

                                                            How secure is Linux's random number generator? | Hacker News Hacker Newsで話題になっていたので。 主に暗号用途には、予測不可能な乱数が必要となる。予測不可能というのは、実装と内部状態が知られていても、なお将来の乱数が予測できないということだ。 たとえば、擬似乱数としてよく使われる線形合同法(Linear congruential generator)は、以下のように書ける。 namespace lcg { thread_local unsigned int seed ; void srand( unsigned int seed ) { lcg::seed = seed ; } int rand( void ) { // glibcの使っている値を拝借 seed = (1103515245 * seed + 12345

                                                            • Linuxに対し米当局がバックドアを仕掛けたとされるIvyBridgeの乱数生成命令を使うなという要望、Linusキレる | スラド Linux

                                                              世界最大の署名プラットフォームというchange.org上で、Linus Torvalds宛てに「Linuxカーネルの全体的なセキュリティを改善するために、RdRandを/dev/randomから取り除いてください」とする請願が書き込まれた。 これに対して、Torvalds氏は請願者の無知を厳しく非難している(本家/.、Party News記事)。 Linuxは請願者とその支持者らに対して、「drivers/char/random.cを読め。それから暗号法について学習したまえ。最後にここに戻って来て、世界に対して己の間違いを認めるんだ」と回答している。またTorvalds氏によれば、カーネル管理者らは自分達が何をやっているのか分かっているが、請願者は分かっていないとのこと。 RdRandはIntelのIvyBridge系CPUに搭載されている乱数生成命令で、NIST SP800-90やFI

                                                              • 乱数の性質とセッショントークンの作成 - $shibayu36->blog;

                                                                ユーザアカウントのログイン機能とか作ってると、何らかの形でセッション用のトークンを作成する機会がある。今まではこれは適当にランダムな値を利用していればいいんでしょと思っていたのだけど、ちょっと違ったのでメモ。 乱数の性質 http://akademeia.info/index.php?%CD%F0%BF%F4によると、乱数には三つの性質がある。 無作為性:統計的な偏りがなく、でたらめな数列になっているという性質。 予測不可能性:過去の数列から次の数を予測できないという性質。 再現不可能性:同じ数列を再現できないという性質。再現するためには、数列そのものを保存しておくしかない。 この時、少なくとも無作為性のみ満たされていると弱い擬似乱数、無作為性と予測不可能性が満たされていると強い擬似乱数、全てが満たされていれば真の乱数と呼ばれる。ソフトウェアだけでは、真の乱数を作ることができず、真の乱数に

                                                                  乱数の性質とセッショントークンの作成 - $shibayu36->blog;
                                                                • 北朝鮮乱数放送比較研究

                                                                  2016年6月24日から再開された平壌放送を通じての北朝鮮からの乱数放送(暗号放送)。本来は工作員に向けた工作活動のための放送だが、再開後の放送形態は、2000年までの放送とは大きく異なる。2017年2月に金正男氏が殺害されたときの指令に利用されたとか、5月のミサイル発射も予告されていたなどと言う報道もあったが、果たしてそうなのか。北朝鮮乱数放送の今と昔を比較した研究報告を2017年8月の第39回近隣諸国放送研究フォーラムで行った。 ■はじめに 2000年12月8日をもって廃止された北朝鮮の音声による乱数放送(A-3放送)が2016年6月24日から再開された。韓国や日本に向けた対南、対日工作のための暗号放送と言われた北朝鮮乱数放送について、2000年までの放送と、2016年の再開後の放送について、いろいろな面から比較してみることにする。 ■2000年以前の乱数放送 2000年以前の乱数放送

                                                                  • Mac、iOSで、rand()関数の疑似乱数アルゴリズムがヘン! - Qiita

                                                                    話の発端は、StackOverflowの、この質問にあった。 StackOverflow 日本語版 - c言語での乱数生成 質問に対する回答は、きわめて単純で、rand()関数を、取得したい乱数の個数分、呼んでやりましょうというもの。 いちおう、XcodeのCommand Line Toolで、サンプルコードを作って、それを実行してみて、ちゃんと意図したとおりの結果になることを確認する。が、ここで奇妙なことに気づく。 何度実行しても、初項が4になる。 試しに、こんなC言語のコードを書いて、Xcodeで実行してみる。 #include <stdio.h> #include <stdlib.h> #include <time.h> int main(int argc, const char * argv[]) { unsigned int i; unsigned int seed = (uns

                                                                      Mac、iOSで、rand()関数の疑似乱数アルゴリズムがヘン! - Qiita
                                                                    • Java における乱数生成器とのつき合い方 / #JJUG CCC 2019 fall に登壇してきました

                                                                      一般公募の枠で CfP 出してあえなくリジェクトされたテーマを、スポンサー枠で勝手に敗者復活させてお話してきました。 はじめに Java 標準のクラスライブラリには、いくつかの乱数生成器の実装 (クラス) が存在しています。長年 Java でアプリケーションを書いている方であれば状況に応じてそれらの実装を使い分けることも難しい話ではありませんが、Java を扱い初めて間もない方にとってはそう簡単な話ではありません。 たとえば java 乱数 のようなクエリでググるとその状況がうかがい知れるのですが、巷にはプログラミングスクール各社の SEO を目的としたコンテンツが溢れていて、それらはいずれも「java.util.Random とか Math.random() とかなんでそんなレガシーなクラス/メソッドしか紹介しないの? この記事を書いたライターというかエンジニアの人たちは J2SE 1.

                                                                        Java における乱数生成器とのつき合い方 / #JJUG CCC 2019 fall に登壇してきました
                                                                      • 暗号に使える乱数と使えない乱数

                                                                        まず重要なポイントとして、擬似乱数のシードとなる真の乱数 (質問の場合は円周率のほうではN, 漸化式の方ではM) は十分に広い空間からランダムに選ばれなくてはなりません。 どんな擬似乱数生成器を使っていたとしてもシードが高々1億程度では総当たりで(比較的)簡単にシードがみつかってしまい生成される乱数が再現できてしまいます。 円周率の先頭100万桁のどこかから選ぶなどは問題外です。 シードはRSA/DSAなどの鍵長に合わせて 1000 bit 程度 (10進数で300桁程度) は欲しいかと思います。 質問にある円周率を擬似乱数として使う方法ですが、円周率の N桁目からの数列がある長さ与えられた時に N 自体を逆算したり, 次の出力を推測する高速な (Nのビット数の多項式時間で実行可能な) アルゴリズムは知られていないかと思います。 そのため N が十分に大きければある時点までの出力が攻撃者に

                                                                          暗号に使える乱数と使えない乱数
                                                                        • #22 カジュアルに乱数を使う方法とその注意点 - KAYAC engineers' blog

                                                                          この記事はtech.kayac.com Advent Calendar 2012の22日目です。 @songmuです。ゲーム作ったりしてると、乱数が必要になってきますがそれについて書きます。 多くの人にとっては当たり前の話も多く出てくるかと思いますがご容赦ください。間違ってる記述があった場合は突っ込みください。 擬似乱数とは何か 計算機は単体では厳密な意味での乱数を生成することができません。実際には一様に分布する乱数の集合を算術的に求めている場合がほとんどです。 その乱数の集合は以下を満たす必要がありますが、そういう小難しいことは偉い人に任せて、巨人の肩に乗って解決してしまえば良いでしょう。 偏りがなく一様に分布している 途中の出力から未来が予測しづらい 高速に算出できるか つまり? 色々な疑似乱数生成法がありますが、多くの場合、 馬鹿でかい乱数の循環リストがある と考えるとわかりやすいで

                                                                            #22 カジュアルに乱数を使う方法とその注意点 - KAYAC engineers' blog
                                                                          • 乱数表使った暗証番号盗む新手口 NHKニュース

                                                                            乱数表使った暗証番号盗む新手口 10月22日 12時16分 インターネットを利用したネットバンキングで預金が不正に引き出される被害が相次いでいる問題で、多くの金融機関が従来のパスワードなどに加えたセキュリティ-対策として導入している、乱数表を使った暗証番号を盗み出そうとする新たな手口が、3つの都市銀行などで確認され、警察庁は被害が広がるおそれがあるとして警戒を呼びかけています。 多くの金融機関では、従来のIDやパスワードに加えた追加のセキュリティー対策として、預金者に乱数表のカードを配布しており、取り引きのたびに乱数表の異なるマスの位置に記された数字を暗証番号として入力することになっています。ところが警察庁などによりますと、三井住友銀行と三菱東京UFJ銀行、それにイオン銀行の3つの銀行の預金者のパソコンに、この夏以降、「セキュリティー向上のためカードを再発行する」という、銀行からを装った偽

                                                                            • 【C】srand(time(NULL))をしても同じ乱数が生成される

                                                                              C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

                                                                                【C】srand(time(NULL))をしても同じ乱数が生成される
                                                                              • 確認番号表(乱数表)の数字すべてを入力させる偽画面にご注意ください(平成25年1月24日) | 三菱東京UFJ銀行

                                                                                【インターネットバンキング】 ログイン直後に確認番号表(乱数表)を入力することはありませんので、絶対に入力しないでください(平成25年7月12日更新)。 インターネットバンキングのログイン直後等に、セキュリティ強化のためと称して、ご契約カード裏面の「確認番号表(乱数表)の数字」を入力させる偽画面を表示するウィルスが発生しております。 偽画面に確認番号表(乱数表)の数字を入力した場合、不正な振込出金の被害にあう危険性が非常に高くなります。 当行ではログイン直後に、「確認番号表(乱数表)の数字」を入力することはありません。 確認番号表(乱数表)の数字を詐取しようとする偽画面には、絶対に確認番号を入力しないでください。 なお、インターネットバンキングで確認番号表(乱数表)の入力が必要な取引は以下のとおりです。 振込などご本人口座以外への資金移動取引 定期預金の期限前の解約 auカブコム証券口座開

                                                                                • すごい乱数生成アルゴリズム「xorshift」 - Pashango’s Blog

                                                                                  みなさん、こんにちは、今回は乱数の話です。 特に複数機種でのコンシューマ機でゲームを開発をしていると、機種間で乱数値を統一するために乱数生成アルゴリズムを自作しますよね。 そこでよく使われるアルゴリズムが「線形合同法」です、内容は至って簡単で、以下の漸化式を使います。 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; } この「線形合同法」は計算が簡単で高速ですから、いろいろな環

                                                                                    すごい乱数生成アルゴリズム「xorshift」 - Pashango’s Blog