Pergunta

Para uma das minhas aulas de CS iniciantes, estamos analisando a "lógica funcional da verdade".

Minha pergunta refere -se às traduções para o inglês. Observe que ^ é e; v é (inclusive) ou; ~ não é. -> é se

Bem, tínhamos o seguinte: "O aluguel sendo pago é uma condição necessária para permanecer nos negócios"

RENT -> BUSINESS

Sempre que classificávamos tudo o que isso estava errado. Perguntei ao professor por que e ela não disse mais nada que "se não houver then Na frase, então o antecedente é sempre o último "

Eu gostaria de mais uma explicação sobre como isso está errado. E como a frase não é ambígua. Algo mais do que "não havia then Então é sempre assim. "

Além disso, uma nota lateral: onde IF O operador booleano vem? Eu nunca ouvi falar de um operador que é basicamente equivalente no código CISH para a==true?b:true. Tenho muita dificuldade em entender seu uso.

Editar: a resposta correta foi

BUSINESS -> RENT
Foi útil?

Solução

Se você pagar aluguel, não está necessariamente no negócio. Aluguel! (->) Negócios.

No entanto, se você estiver no negócio, deve pagar aluguel. Negócios -> Rent.

Outras dicas

Eu acho que deveria ter sido escrito:

BUSINESS -> RENT

"Se você está hospedado no negócio, está pagando aluguel."

P -> Q

pode ser declarado "P implica q" "se p, então q" ou "q se P."

Ela está certa. É um clássico uma implica b mas b não implica uma. O que você está dizendo é uma condição necessária para pagar o aluguel que está errado.

Onde fiz o IF O operador booleano vem? Eu nunca ouvi falar de um operador que é basicamente equivalente no código CISH para a==true?b:true. Tenho muita dificuldade em entender seu uso.

Esse operador é mais comumente chamado de "implicação". O que você quer dizer com "De onde [foi]?

E sim, implicação é Difícil de entender e seu erro é completamente típico.

Você pode explicar a implicação observando que em premissas falsas, tudo Pode ser explicado, mesmo falso (por exemplo, podemos provar matematicamente que 1 = 2 se usarmos a premissa de que a divisão por 0 é legal). Por essa razão, 0 -> x é sempre verdade, não importa o valor de x (ou seja, a implicação pode produzir o resultado).

Por outro lado, se suas instalações estiverem corretas, uma implicação levará a um resultado correto, assim 1 -> 1 é verdadeiro (uma premissa verdadeira implica um resultado verdadeiro) e 1 -> 0 é falso (uma premissa verdadeira não pode implicar um resultado falso).

!RENT -> !BUSINESS

Se você não está pagando aluguel, não está no negócio. Este é o "contrapositivo" de

BUSINESS -> RENT

Se você está no negócio, está pagando aluguel.

Outras maneiras de dizer isso (desde a -> b === (!a || b) ):

!BUSINESS || RENT
RENT || !BUSINESS

Ou você não está no negócio ou está pagando aluguel ou ambos (ou vice-versa).

!(!RENT && BUSINESS)

Você não está pagando aluguel e negócios (ou vice-versa).

Adicionado: BTW, é assim que a resolução funciona. Coloque seu conhecimento em forma normal conjuntiva, onde cada cláusula consiste em uma disjunção de termos atômicos, cada um dos quais pode ser negado. Se você sabe que não está pagando aluguel, essa é uma cláusula, que você pode resolver (ou seja, cancelar os termos) com a implicação para deduzir uma nova cláusula, a saber, que você não está no negócio.

RENT || !BUSINESS
!RENT
--------
!BUSINESS

Da mesma forma, se você sabe que está no negócio, pode cancelar os termos para concluir que está pagando aluguel.

RENT || !BUSINESS
BUSINESS
--------
RENT

Essa é a atração do teorema da resolução provadores - uma regra de inferência abrange a inferência para frente e para trás.

Ele também lida bem com o caso de caso, como se A-> C e B-> C e A || B, permite que você conclua C:

1. !A || C
2. !B || C
3.  A || B
----------
4.  B || C  (resolve 3 and 1)
5.  C       (resolve 4 and 2)

A chave aqui é a palavra "necessária". Temos aqui uma frase da forma "X é necessário para Y. "O que isso significa é que X deve ser verdadeiro para Y ser verdadeiro. Na linguagem cotidiana, pensamos nisso como "Y não pode ser verdade a menos X é verdade ". E isso se traduz muito claramente em" se X é falso então Y é falso "porque se X eram falsos, mas Y eram verdadeiros então estaríamos violando Y não pode ser verdade a menos X é verdade. Mas se X é falso então Y é falso traduz simbolicamente para !X => !Y que tem contrapositivo Y => X. Isso é por que "X é necessário para Y" é equivalente a Y => X.

Aqui está um exemplo: ser estranho é necessário para ser primo e maior que dois. O que isso significa é que, se um número é primo e maior que dois, deve ser estranho, porque ser estranho é uma condição necessária para ser prima e maior que dois. Disse de outra maneira, se um número é primo e maior que dois, deve ser estranho. O inverso (se um número for ímpar, deve ser primo) é absurdo.

Isso deve convencê -lo que X é necessário para Y é equivalente a Y => X.

Existe uma relação diferente, mas relacionada, entre declarações que assume a seguinte forma: "X é uma condição suficiente para Y". Na linguagem cotidiana, diríamos que "conhecendo X é verdade é motivos para Y ser verdade ", ou X => Y.

Esses dois relacionamentos implicacionais (agora é uma palavra!) São duplos um do outro. De fato, em matemática, uma forma muito importante é "X é uma condição necessária e suficiente para Y." Isso significa que X => Y e Y => X, ou aquilo X <=> Y. Nós dizemos isso X e Y são equivalentes e às vezes dizemos "X if and only if Y"E às vezes abreviam -o"X iff Y."

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top