パスワードを忘れた? アカウント作成

「じゃんけんゲーム」のロジックに対する意見の相違で兄弟げんか」記事へのコメント

  • 論理的には同等でも、感性的・美学的な違いというものがあります。世間やネットで流通しているのはめちゃくちゃ古い美学の定義なのでみんな知らないが、今日においては感性的な判断すべてが美学の対象になります。
    for(;;){...}とwhile(true){...}のどちらを好むのかもそうですね。open_fileとopenFileとOpenFileの違いもそう。
    みんな感性的な判断をプログラムのロジックと区別せず説明しようとするから混乱するのです。

    • by Anonymous Coward

      論理的に同等ではないだろう。
      乱数の種を起動時の time() で与えるというようなよくある実装の場合、理論上は乱数をすべて予想することができる。
      あるいはサイドチャネル攻撃で、現在の乱数生成器の状態を知ることも理論上不可能ではない。
      そのとき、次男方式ではプレイヤーが常勝できるが、長男方式では 1/3 しか勝てない。

      • by Anonymous Coward on 2020年07月30日 18時52分 (#3861797)

        感性と論理を区別できない負けず嫌いのバカは、論理的な差が出るまでいくらでも非現実的な前提を付け加えます。
        この人に限らす、よく見られることです。

        • by Anonymous Coward on 2020年07月30日 22時24分 (#3861956)

          いえ、割と現実的な前提ですよ。

          悪名高いCのrand()関数どころか、メルセンヌツイスター辺りのすばらしい乱数でも、
          「暗号・セキュリティ用途には使うな」とマニュアルに明記されているんですよ。
          「乱数の列から次の値やシードを推測する」ような逆計算への耐性は考慮して設計されていないから、と。

          ということは、サイドチャネル攻撃まで仕掛けなくても、プレイしているうちにシードを絞り込めて、
          ある程度のプレイ回数より後は勝ち続けられる可能性があります。
          カジノで朝から晩までずーっと眺めていた数学者が夕方以降、店が閉まるまで連勝し続けるとか、
          そういう危険性があるので、カジノのオーナーとしては兄バージョンを採用した方が気が楽でしょうね。

          ちなみに、ちらっと調べたところだとメルセンヌツイスターのシードは19936ビット。
          グー著キーパーの1/3で絞り込んでいくと、確定に必要な期待値はlog2/log3倍して、12578回ぐらい。
          …サイドチャネル攻撃の方が現実的かも。

        • by Anonymous Coward

          ジョークに真顔で突っかかる人がいるのもよく見られますね。

          ジャンケンのルールだと長男方式でも次男方式でも判定テーブル9通りしかないので速度は変わらなさそうですが、
          ジャンケンに手が増えた、とか、勝ち負けあいこ以外の結果が増えた、という時にどちらが最適化しやすいか とか考えだすと止まらなくなるので誰かお願いします。

        • by Anonymous Coward

          論理に論理で返されて感情的な人格攻撃に走るのは一番みっともないな

        • by Anonymous Coward

          プログラムだからね。ここに出てくる乱数は数学的な意味の乱数じゃない。乱数シードの話が出来るのはごく当然。
          まして兄弟が作ったプログラムが実装されてる環境が明記されてるわけでもなく、Z80のリフレッシュレジスタを使った古典的な脆弱乱数かもしれないし、もっと言って乱数の初期化すらしてない固定出力かもしれん。
          プログラムの乱数は言うほど乱数じゃないのよね。

一つのことを行い、またそれをうまくやるプログラムを書け -- Malcolm Douglas McIlroy

処理中...