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

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

  • by ChaldeaGecko (48775) on 2020年07月30日 18時32分 (#3861777) 日記

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

    ここに返信
    • Re:美学的な違い (スコア:2, すばらしい洞察)

      by Anonymous Coward on 2020年07月30日 20時38分 (#3861889)

      この二つは論理的に、同等ってレベルじゃなくて、メッセージリソースの差し替えだけで、弟のほうも兄のほうも完全に同一のコードで実装できるってレベルで同じことなんだよな。

      • by Anonymous Coward

        なるほど確かに。表示する文字列以外一切同じプログラムで書ける。

        // 弟バージョン(0=グー、1=チョキ、2=パー)
        switch(乱数){
        case 0:
            switch(入力){
                case 0: print("コンピュータがグーで、プレイヤーもグーなので、引き分け"); break;
                case 1: print("コンピュータがグーで、プレイヤーがチョキなので、コンピュータの勝ち"); break;
                case 2: print("コンピュータがグーで、プレイヤーがパーなので、プレイヤーの勝ち"); break;
            }
            break;
        case 2:

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

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

      • by Anonymous Coward

        そこまでできるなら、同様に多く試行していけば長男側の乱数の予想は理論上可能だろう。
        ならば長男の方は勝てないとわかったらリセットしてしまうのも理論上不可能ではない。
        連勝の話がでてきてないので理論上1/3しか勝てないというのはあやまり。
        1/3といってしまっているから理論上単発の勝負だろうし。

        • by Anonymous Coward

          「連勝の話がでてきてないので」というのは、連戦しないなら勝てないと分かった時点でリセットしても問題はなかろうという話にしたかった。
          ちょっとわかりにくかったので補足しとく。

    • by Anonymous Coward

      >open_fileとopenFileとOpenFileの違い
      普通に、使用言語を決めた段階でベースとなるものが決まるので(既に用意されている言語仕様に合わせる)ので選択肢はほぼないよ。

      • by Anonymous Coward
        exec(2)ファミリーとかVC++ランタイムのsnprinfの様々な亜種とか、使用言語も何もかも決まってるのに選択肢多すぎな関数群があるのはどれか1つに絞っといてくれって思うけど

物事のやり方は一つではない -- Perlな人

処理中...