パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

「配列のすべての要素が条件を満たすならtrueを返す」関数に空配列を渡したらtrueかfalseか?」記事へのコメント

  • 空の配列には、条件を満たす要素は一つも無い。
    つまり、falseだと思う。

    • Re: (スコア:4, すばらしい洞察)

      by Anonymous Coward

      「すべての要素が条件を満たすか?」というだけ話に、「かつ最低でも一つは条件を満たすこと」という別の条件を勝手に加えて判断してるね
      論理的にも等価に言い換えるなら、「いずれかの要素が条件を満たさないことはないか?」だよ
      A and B and ... = not(notA or notB or ...)

      空配列は空であるが故に、いずれかの要素が条件を満たさないことはない、のでtrue

      • by Anonymous Coward

        > 空配列は空であるが故に、いずれかの要素が条件を満たさないことはない


        空集合に対して ( notA or notB or .. ) の値が false であるとどうして断言できるんだ?

        • by Anonymous Coward

          ああわかった。
          not(not N1 or not N2 or ...not Nn or ....) に対して n=0 の場合は未定義なのにあたかも定義されている(n=0でも成立する)かのように書いているから、一見正しいように見えるのか。

          • Re:言葉尻? (スコア:2, 参考になる)

            by Anonymous Coward on 2023年06月03日 22時52分 (#4471482)

            知識がないので分かったと勘違いしてるな
            n=0 の場合は未定義、なんてことはない
            要素をゼロの空集合は、ある条件に合致する集合に必ず含まれる、というのは論理的に定義されてるルールだ

            https://wiis.info/math/set/set/empty-set/ [wiis.info]
            空集合は任意の集合の部分集合です。

            君がその基礎的なルールを知らんから間違ってるように見えるだけ
            n=0の場合、空集合となるので、右辺の集合の一部
            当然、左辺の集合の一部も式通りに成り立つので、論理的にも矛盾しない

            そして、逆にfalseとする場合は式が成り立たずに矛盾するので間違い
            なのでtrueしかありえない

            親コメント

私はプログラマです。1040 formに私の職業としてそう書いています -- Ken Thompson

処理中...