アカウント名:
パスワード:
空の配列には、条件を満たす要素は一つも無い。つまり、falseだと思う。
「すべての要素が条件を満たすか?」というだけ話に、「かつ最低でも一つは条件を満たすこと」という別の条件を勝手に加えて判断してるね論理的にも等価に言い換えるなら、「いずれかの要素が条件を満たさないことはないか?」だよA and B and ... = not(notA or notB or ...)
空配列は空であるが故に、いずれかの要素が条件を満たさないことはない、のでtrue
それを言うなら「すべての要素」と書いているのに、「『要素が無い』を許す」という別の条件を勝手に加えて判断してません?
0個の要素がすべて条件に合致しました、と条件を加えることなく満たしてるね自然言語ならまだしも、プログラム言語という数学や論理上の話なら極めて普通の処理だと思うけどそうは思わないってこと?
「『要素が無い』を許さない」という別の条件を勝手に加えて判断するのはやめましょう
数学や論理上の話では、「未定義」を「存在する(∃)」扱いにすることはないよ。勉強して出直してこい。
数学およびその一分野であるコンピュータサイエンスでは、true になるで合ってるよ。
「∀A∈S に対して C(S)=真」が条件式なんだから、Sが空集合なら式は真になる。
Sが空集合なら式は真、という結論には異論はないんですが、
数学的に考えちゃうと、常にreturn trueする恒真関数も、「配列のすべての要素が条件を満たすならtrueを返す」関数の条件を満たしちゃうんだよなぁ。
「必要十分条件である」という暗黙の前提があると考えれば曖昧さはなくなるんだけど
たまに条件Aを満たすならtrueを返し、条件Bを満たすならfalseを返す関数みたいに定義されていて、AもBも満たさない場合どうすんねんって暗黙の前提の想像もできない仕様を見かける。
その場合は3値論理として不定/未定義だなってプログラム的に組みやすいように実装したりすると、あとで(仕様にない挙動を思い込みで決めつけて)「AもBも満たさない場合の挙動がおかしい」とかいってクレームが来るのが定番なので仕様精査大切。
条件を満たすことはないのと全く同じように満たさないわけでもないので不定条件を満たすと満たさないを対等に扱ってないのはおかしいよ
右辺と左辺がイコールで結ばれてるのに気が付かないのか?trueとして考えれば、両辺は全く同じ様に成り立つ
0個の要素がすべて条件に合致=0個の要素がいずれも条件に非合致ではなかった
falseの場合は無理おかしいと思うのがおかしい、論理的に考えよう
> 空配列は空であるが故に、いずれかの要素が条件を満たさないことはない
?空集合に対して ( notA or notB or .. ) の値が false であるとどうして断言できるんだ?
ああわかった。not(not N1 or not N2 or ...not Nn or ....) に対して n=0 の場合は未定義なのにあたかも定義されている(n=0でも成立する)かのように書いているから、一見正しいように見えるのか。
知識がないので分かったと勘違いしてるなn=0 の場合は未定義、なんてことはない要素をゼロの空集合は、ある条件に合致する集合に必ず含まれる、というのは論理的に定義されてるルールだ
https://wiis.info/math/set/set/empty-set/ [wiis.info]空集合は任意の集合の部分集合です。
君がその基礎的なルールを知らんから間違ってるように見えるだけn=0の場合、空集合となるので、右辺の集合の一部当然、左辺の集合の一部も式通りに成り立つので、論理的にも矛盾しない
そして、逆にfalseとする場合は式が成り立たずに矛盾するので間違いなのでtrueしかありえない
空配列は空であるが故にtrueでもfalseでもない。trueでもfalseでもない値に対して論理演算は定義されていない。したがってandもorもnotも計算できない。
>空配列は空であるが故に、いずれかの要素が条件を満たさないことはない、のでtrue「値が存在しない場合はtrueとして扱う」という別の条件を勝手に加えていますね。
> 空配列は空であるが故にtrueでもfalseでもない。> 「値が存在しない場合はtrueとして扱う」という別の条件を勝手に加えていますね。
違います、嘘書かないように空集合は論理的にすべての集合の部分集合というのは、公理的集合論の基礎ですつまり、空集合であるが故に、ある条件の集合には*必ず*含まれます
空集合のルールに、特定の集合には含まれない、などというルールを勝手に付け加えているのはあなた
空集合は全ての集合の部分集合だから「全てが真」の集合の部分集合でもあります。以上。
> 空集合は全ての集合の部分集合だから「全てが真」の集合の部分集合でもあります。以上。はい、なのでtrueになるという話をしてます「値が存在しない場合はtrueとして扱う」とは、論理的な大前提なので何も条件を付け加えていないので反論になっておらず、また「配列のすべての要素が条件を満たすならtrueを返す」関数を定義されてるなら、空の配列を渡したらその集合の部分集合になるので必ずtrueになります
# レス先あってます?
これはおかしい。
空の配列の場合言うなれば not は何かという話で、それについては、ド・モルガンの法則は何も言っていない。
not は not() ね
何もおかしくない
■ド・モルガンの法則を使った説明左辺=(空集合で要素が0個なので)その全ての0個が条件を満たす=真右辺=(空集合で要素が0個なので)いずれかの要素が条件を満たさないことはない=真
■空集合の定義を使った説明空集合は任意の集合の部分集合なので、空集合は「配列のすべての要素が条件を満たす」集合の部分集合となる=真
> 空集合は任意の集合の部分集合なので、空集合は「配列のすべての要素が条件を満たす」集合の部分集合となる=真空集合は任意の集合の部分集合なので、空集合は「配列のいずれかの要素が条件を満たさない」集合の部分集合となる=偽ともなると思いますが
> 空集合は任意の集合の部分集合なので、空集合は「配列のいずれかの要素が条件を満たさない」集合の部分集合となる=偽> ともなると思いますが
はっきり言うが頭が悪すぎる、反論・反証になってない
まず、『空集合は「配列のいずれかの要素が条件を満たさない」集合の部分集合となる=真』、だ偽だったら反論にすらなってない
次、そしてこれが真だろうが偽だろうが、「配列のすべての要素が条件を満たすなら真」の*定義*では空集合に真を返す事の妥当性を何一つとして否定してない単に、「配列のいずれかの要素が条件を満たさな
間違ってる。
空集合に対するド・モルガンの法則を扱ってるわけではなく、「式」が空の場合、ド・モルガンの法則はどうなるのかという話なので。
わかりやすく言えば、右辺の not(notA or notB or ...) の括弧の中が空だったらという話。「not 空の式」なんて定義すらされてないでしょ。
全称命題として語った時点で、空集合も定義されてるんですよ。
全称肯定命題: ∀x∈A P(x) : Aに属する全てのxについて、P(x)が成り立つの否定は、特称否定命題: ∃x∈A ¬P(x): Aに属するあるxが存在し、そのxではP(x)は成り立たないになります。
この∀と∃による命題論理はは 論理積∧・論理和∨で書けば、まさにド・モルガンの法則¬ ∧x∈A{P(x)} ≡ ∨x∈A {¬P(x)}って関係であり、∧・∨は空集合でも定義されていて、∧(論理積)は恒真、∨(論理和)は恒偽になるってことです。
> 「not 空の式」なんて定義すらされてないでしょ
空集合の否定は定義されとらんが、空集合ではないなら要素を一つ以上持つというのは空集合そのものの定義から分かることだぞつまり、ある意味でnot∅であれば、それは要素は一つ以上あることに関してまでは証明されるつまり条件に合致してtrueを返すということは確定できる
その理屈では。「すべての要素が条件を満たすか?」というだけ話に、「かつ最低でも一つは条件を満たさないこと」という別の条件を勝手に加えて判断してるね
空配列は空であるが故に、いずれかの要素が条件を満たすことはない
も真だからFALSEも通じるんだけど。
> by Anonymous Coward on 2023年06月05日 9時01分 (#4471842)
もう三日目だぞ?
0個の要素で0個ならそれは全てだっていたるところに書いてあるのに、何周遅れだ?空集合は任意の集合の部分集合だってこともいたるところに書いてあるのに、冬眠でもしてたのか?『すべての要素が条件を満たすか?』の話で『ほか云々の条件を満たすか?』は前者がtrueを返すかどうかに関係ないってこともいたるところに書いてあるのに、理解する能力がないのか?
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
アレゲはアレゲを呼ぶ -- ある傍観者
言葉尻? (スコア:2)
空の配列には、条件を満たす要素は一つも無い。
つまり、falseだと思う。
Re:言葉尻? (スコア:4, すばらしい洞察)
「すべての要素が条件を満たすか?」というだけ話に、「かつ最低でも一つは条件を満たすこと」という別の条件を勝手に加えて判断してるね
論理的にも等価に言い換えるなら、「いずれかの要素が条件を満たさないことはないか?」だよ
A and B and ... = not(notA or notB or ...)
空配列は空であるが故に、いずれかの要素が条件を満たさないことはない、のでtrue
Re: (スコア:0)
それを言うなら「すべての要素」と書いているのに、「『要素が無い』を許す」という別の条件を勝手に加えて判断してません?
Re: (スコア:0)
0個の要素がすべて条件に合致しました、と条件を加えることなく満たしてるね
自然言語ならまだしも、プログラム言語という数学や論理上の話なら極めて普通の処理だと思うけどそうは思わないってこと?
「『要素が無い』を許さない」という別の条件を勝手に加えて判断するのはやめましょう
Re: (スコア:0)
数学や論理上の話では、「未定義」を「存在する(∃)」扱いにすることはないよ。勉強して出直してこい。
Re:言葉尻? (スコア:1)
数学およびその一分野であるコンピュータサイエンスでは、true になるで合ってるよ。
「∀A∈S に対して C(S)=真」が条件式なんだから、Sが空集合なら式は真になる。
Re: (スコア:0)
Sが空集合なら式は真、という結論には異論はないんですが、
数学的に考えちゃうと、常にreturn trueする恒真関数も、
「配列のすべての要素が条件を満たすならtrueを返す」関数
の条件を満たしちゃうんだよなぁ。
「必要十分条件である」という暗黙の前提があると考えれば曖昧さはなくなるんだけど
たまに
条件Aを満たすならtrueを返し、条件Bを満たすならfalseを返す関数
みたいに定義されていて、AもBも満たさない場合どうすんねんって
暗黙の前提の想像もできない仕様を見かける。
その場合は3値論理として不定/未定義だなってプログラム的に組みやすいように実装したりすると、
あとで(仕様にない挙動を思い込みで決めつけて)「AもBも満たさない場合の挙動がおかしい」とかいってクレームが来るのが定番なので
仕様精査大切。
Re: (スコア:0)
条件を満たすことはないのと全く同じように満たさないわけでもないので不定
条件を満たすと満たさないを対等に扱ってないのはおかしいよ
Re: (スコア:0)
右辺と左辺がイコールで結ばれてるのに気が付かないのか?
trueとして考えれば、両辺は全く同じ様に成り立つ
0個の要素がすべて条件に合致=0個の要素がいずれも条件に非合致ではなかった
falseの場合は無理
おかしいと思うのがおかしい、論理的に考えよう
Re: (スコア:0)
> 空配列は空であるが故に、いずれかの要素が条件を満たさないことはない
?
空集合に対して ( notA or notB or .. ) の値が false であるとどうして断言できるんだ?
Re: (スコア:0)
ああわかった。
not(not N1 or not N2 or ...not Nn or ....) に対して n=0 の場合は未定義なのにあたかも定義されている(n=0でも成立する)かのように書いているから、一見正しいように見えるのか。
Re:言葉尻? (スコア:2, 参考になる)
知識がないので分かったと勘違いしてるな
n=0 の場合は未定義、なんてことはない
要素をゼロの空集合は、ある条件に合致する集合に必ず含まれる、というのは論理的に定義されてるルールだ
https://wiis.info/math/set/set/empty-set/ [wiis.info]
空集合は任意の集合の部分集合です。
君がその基礎的なルールを知らんから間違ってるように見えるだけ
n=0の場合、空集合となるので、右辺の集合の一部
当然、左辺の集合の一部も式通りに成り立つので、論理的にも矛盾しない
そして、逆にfalseとする場合は式が成り立たずに矛盾するので間違い
なのでtrueしかありえない
Re: (スコア:0)
空配列は空であるが故にtrueでもfalseでもない。
trueでもfalseでもない値に対して論理演算は定義されていない。
したがってandもorもnotも計算できない。
>空配列は空であるが故に、いずれかの要素が条件を満たさないことはない、のでtrue
「値が存在しない場合はtrueとして扱う」という別の条件を勝手に加えていますね。
Re: (スコア:0)
> 空配列は空であるが故にtrueでもfalseでもない。
> 「値が存在しない場合はtrueとして扱う」という別の条件を勝手に加えていますね。
違います、嘘書かないように
空集合は論理的にすべての集合の部分集合というのは、公理的集合論の基礎です
つまり、空集合であるが故に、ある条件の集合には*必ず*含まれます
空集合のルールに、特定の集合には含まれない、などというルールを勝手に付け加えているのはあなた
Re: (スコア:0)
空集合は全ての集合の部分集合だから「全てが真」の集合の部分集合でもあります。以上。
Re: (スコア:0)
> 空集合は全ての集合の部分集合だから「全てが真」の集合の部分集合でもあります。以上。
はい、なのでtrueになるという話をしてます
「値が存在しない場合はtrueとして扱う」とは、論理的な大前提なので何も条件を付け加えていないので反論になっておらず、
また「配列のすべての要素が条件を満たすならtrueを返す」関数を定義されてるなら、空の配列を渡したらその集合の部分集合になるので必ずtrueになります
# レス先あってます?
Re: (スコア:0)
これはおかしい。
空の配列の場合言うなれば not は何かという話で、それについては、ド・モルガンの法則は
何も言っていない。
Re: (スコア:0)
not は not() ね
Re: (スコア:0)
何もおかしくない
■ド・モルガンの法則を使った説明
左辺=(空集合で要素が0個なので)その全ての0個が条件を満たす=真
右辺=(空集合で要素が0個なので)いずれかの要素が条件を満たさないことはない=真
■空集合の定義を使った説明
空集合は任意の集合の部分集合なので、空集合は「配列のすべての要素が条件を満たす」集合の部分集合となる=真
Re: (スコア:0)
> 空集合は任意の集合の部分集合なので、空集合は「配列のすべての要素が条件を満たす」集合の部分集合となる=真
空集合は任意の集合の部分集合なので、空集合は「配列のいずれかの要素が条件を満たさない」集合の部分集合となる=偽
ともなると思いますが
Re: (スコア:0)
> 空集合は任意の集合の部分集合なので、空集合は「配列のいずれかの要素が条件を満たさない」集合の部分集合となる=偽
> ともなると思いますが
はっきり言うが頭が悪すぎる、反論・反証になってない
まず、『空集合は「配列のいずれかの要素が条件を満たさない」集合の部分集合となる=真』、だ
偽だったら反論にすらなってない
次、そしてこれが真だろうが偽だろうが、「配列のすべての要素が条件を満たすなら真」の*定義*では空集合に真を返す事の妥当性を何一つとして否定してない
単に、「配列のいずれかの要素が条件を満たさな
Re: (スコア:0)
間違ってる。
空集合に対するド・モルガンの法則を扱ってるわけではなく、「式」が空の場合、
ド・モルガンの法則はどうなるのかという話なので。
わかりやすく言えば、右辺の not(notA or notB or ...) の括弧の中が空だったらという話。
「not 空の式」なんて定義すらされてないでしょ。
Re: (スコア:0)
全称命題として語った時点で、空集合も定義されてるんですよ。
全称肯定命題: ∀x∈A P(x) : Aに属する全てのxについて、P(x)が成り立つ
の否定は、
特称否定命題: ∃x∈A ¬P(x): Aに属するあるxが存在し、そのxではP(x)は成り立たない
になります。
この∀と∃による命題論理はは 論理積∧・論理和∨で書けば、まさにド・モルガンの法則
¬ ∧x∈A{P(x)} ≡ ∨x∈A {¬P(x)}
って関係であり、
∧・∨は空集合でも定義されていて、∧(論理積)は恒真、∨(論理和)は恒偽になるってことです。
Re: (スコア:0)
> 「not 空の式」なんて定義すらされてないでしょ
空集合の否定は定義されとらんが、空集合ではないなら要素を一つ以上持つというのは空集合そのものの定義から分かることだぞ
つまり、ある意味でnot∅であれば、それは要素は一つ以上あることに関してまでは証明される
つまり条件に合致してtrueを返すということは確定できる
Re: (スコア:0)
その理屈では。
「すべての要素が条件を満たすか?」というだけ話に、「かつ最低でも一つは条件を満たさないこと」という別の条件を勝手に加えて判断してるね
空配列は空であるが故に、いずれかの要素が条件を満たすことはない
も真だからFALSEも通じるんだけど。
Re: (スコア:0)
> by Anonymous Coward on 2023年06月05日 9時01分 (#4471842)
もう三日目だぞ?
0個の要素で0個ならそれは全てだっていたるところに書いてあるのに、何周遅れだ?
空集合は任意の集合の部分集合だってこともいたるところに書いてあるのに、冬眠でもしてたのか?
『すべての要素が条件を満たすか?』の話で『ほか云々の条件を満たすか?』は前者がtrueを返すかどうかに関係ないってこともいたるところに書いてあるのに、理解する能力がないのか?