¿Existe una fórmula que contiene x e y que da 1 si y solo si x = y y que da 0 en todos los demás casos?

Usaré la función Signum para desarrollar la fórmula requerida.

La función de signum o [math] f (X) = Sgn (x) [/ math] se define como,

[matemáticas] f (X) = [/ matemáticas]

  • [matemáticas] -1 [/ matemáticas], cuando [matemáticas] x [/ matemáticas] es un número real negativo
  • [matemática] 0 [/ matemática], cuando [matemática] x [/ matemática] es [matemática] 0 [/ matemática] (cero)
  • [matemática] 1 [/ matemática] cuando [matemática] x [/ matemática] es un número real positivo

Ahora la fórmula requerida es

[matemáticas] f (x, y) = [/ matemáticas] [matemáticas] 1 + Sgn (- | xy |) [/ matemáticas]

Donde [math] Sgn (x), [/ math] y [math] | x | [/ math] representan la función Signum y Modulus en [math] x [/ math] respectivamente.

  • Si coloca valores de [matemática] x [/ matemática] y [matemática] y [/ matemática] (excepto [matemática] x [/ matemática] [matemática] = y [/ matemática])

[matemáticas] | xy | [/ matemáticas] será un número real positivo

[matemáticas] – | xy | [/ matemáticas] será un número real negativo

[matemáticas] Sgn (- | xy |) [/ matemáticas] te devolverá [matemáticas] -1 [/ matemáticas]

[matemáticas] 1 + Sgn (- | xy |) [/ matemáticas] se convertirá en [matemáticas] 0 [/ matemáticas]

  • Si coloca cualquier valor de [matemática] x [/ matemática] y [matemática] y [/ matemática] tal que [matemática] x = y [/ matemática]

[matemáticas] | xy | [/ matemáticas] será un [matemáticas] 0 [/ matemáticas]

[matemáticas] – | xy | [/ matemáticas] también será [matemáticas] 0 [/ matemáticas]

[matemáticas] Sgn (- | xy |) [/ matemáticas] te devolverá de nuevo [matemáticas] 0 [/ matemáticas]

[matemáticas] 1 + Sgn (- | xy |) [/ matemáticas] se convertirá en [matemáticas] 1 [/ matemáticas]

Ha pasado mucho tiempo … pero al menos en informática hay operadores lógicos, que producen el resultado de verdadero o falso (generalmente 1 o 0) dependiendo de los argumentos de la operación.

Estas operaciones incluyen .EQ., .NE., .GT., .GE., .LT., .LE., Donde los argumentos son típicamente números de algún tipo, pero también podrían ser cadenas.

También hay operadores que trabajan con valores lógicos: .AND, .OR., .NOT., Y .XOR. – y, estoy seguro, otros.

Entonces quieres (x .EQ. Y) que produce .TRUE. si son iguales o FALSO – generalmente codificado como 1 y 0 respectivamente.

Hay dos funciones de uso común (o anotaciones, en realidad) para ese caso, dependiendo de si se trata de enteros o reales.

El caso entero se llama delta de Kronecker y se escribe como [matemáticas] \ delta_ {ij} [/ matemáticas] (o [matemáticas] \ delta ^ i_j [/ matemáticas] o [matemáticas] \ delta ^ {ij} [/ matemática] [1]. Se define de manera tal que [matemática] \ delta_ {ii} = 1, \ delta_ {ij} = 0, i \ neq j [/ matemática].

En caso continuo se llama la función delta de Dirac, que no es exactamente la misma, sino similar. Se define de manera tal que [matemáticas] \ delta (x) = 0 \ iff x \ ne 0; \ int _ {- \ infty} ^ \ infty \ delta (x) dx = 1 [/ math]. No es

Ambos se utilizan para el propósito que está buscando, que es seleccionar un valor particular de entre muchos. [matemáticas] \ sum a_n \ delta_ {nk} = a_k, \ int _ {- \ infty} ^ {\ infty} f (x) \ delta (x-x_0) dx = f (x_0) [/ math].

Usando el delta de Kronecker, escribiría [matemáticas] B + \ delta_ {xy} (A-1) [/ matemáticas]. Como supongo que los “piratas” no son una cantidad continua (no se pueden tener piratas [matemáticos] \ pi [/ matemáticos]), la función delta de Dirac no es muy apropiada aquí.

[1] Los lugares en los que se usa tienden a usar superíndices y subíndices para indexar, y es útil tener las formas múltiples. Sin embargo, todos funcionan igual.

Descargo de responsabilidad: mi respuesta no te ayudará, pero pensé que el problema era divertido, así que decidí tratar de resolverlo (¡sin usar una función inteligente!). Aquí están mis resultados!

Tenga en cuenta que en esta solución, estamos tomando que [matemáticas] 0 ^ 0 [/ matemáticas] como [matemáticas] 1 [/ matemáticas]. Este es un punto de disputa, pero usar esta es la única solución que se me ocurre.

[matemáticas] f (x, y) = 0 ^ {| xy |} [/ matemáticas]

¡Ahí está! Conciso, ¿no es así? Si [math] x = y [/ math] será [math] 1 [/ math]. De lo contrario, obviamente será [matemáticas] 0 [/ matemáticas].

Seguro.

f (x, y) = [1 si x == y y 0 en caso contrario.

Otras expresiones no son mucho menos esotéricas; podrías usar otras funciones elegantes también. Puede llegar a algún lugar con abs (xy).

Puede expresar esto como una función de indicador. Es posible que aún no los haya visto, pero son funciones perfectamente buenas y se usan ampliamente.

Si. Simplemente lo define de esta manera. f (x, y) = 1 si x = y y 0 en caso contrario. ¿Quizás quieres que tenga otras propiedades? Por ejemplo, esta función no es continua pero está bien.

En álgebra booleana, Z = X xnor Y, donde “xnor” significa “exclusivo ni”. Sin embargo, X e Y solo pueden ser 0 o 1 en álgebra booleana.

El símbolo de kronecker funciona. Pero eso no es realmente lo que estás buscando, supongo.

También puede definir funciones usted mismo diciendo qué elementos se asignan a cuáles.