Gol:
Dados dos números naturales (enteros de 0 a infinito), genera un número que no es la suma de esos números, sino que es un número natural.
Soluciones de ejemplo (TI-Basic):
A+B+1
not(A+B)
Soluciones inválidas:
A+B-1
(para las entradas0,0
, regresa-1
, lo que no es natural)"ABC"
(ABC
no es un número)
Notas:
La salida siempre debe ser una suma de dos números naturales (que en realidad es solo un número natural)
-1
,undefined
,infinity
,NaN
Y los mensajes de error no son números naturales. Para nuestros propósitos,0
es natural (aunque no todos los matemáticos están de acuerdo).
code-golf
number
arithmetic
Julian Lachniet
fuente
fuente
Respuestas:
RProgN ,
431 ByteTachado 4 sigue siendo 4; (
La solución más simple, compara si A y B son iguales. Pushes verdadero, que RProgN ve como 1, si son iguales, o falso aka 0 de lo contrario.
Casos de prueba
Pruébalo en línea!
fuente
Retina , 3 bytes
Pruébalo en línea!
(La primera línea tiene un espacio antes de la nueva línea. Stack Exchange no es muy bueno para mostrar espacios en blanco al final).
La entrada son los números en decimal, separados por un espacio (p
12 34
. Ej .). Este programa simplemente cambia el espacio a a1
, creando un número demasiado grande para ser la suma de los números de entrada (necesariamente tiene al menos 2 dígitos más que cualquiera de los dos, y sumar dos números produce una salida con no más de 1 dígito más que el mayor entrada).fuente
0 0
También debería funcionar.010
se considera un número entero a través de básicamente todos los analizadores enteros. Puedo ver un argumento potencial que0 8
no es válido sobre la base de que018
se considera octal inválido a través de algunos analizadores enteros (aunque otros lo consideran 18 decimal). Tenga en cuenta que este programa se complace en manejar los ceros iniciales en la entrada , tratándolos como decimales; y he escrito programas que generan ceros iniciales para otras preguntas sin que la gente vea un problema. ¿Hay una meta publicación relevante sobre el tema?.
1
si no desea devolver los ceros iniciales usted mismo.Python , 13 bytes
Pruébalo en línea! Toma la entrada como una tupla.
El uso de un método de objeto para la función evita la repetitiva de a
lambda
.Aquí, la idea es asignar
(0,0)
a1
y todo lo demás a0
. Como solo0+0
da una suma de0
entre los números naturales, eso siempre evita hacer coincidir la suma.Si uno pudiera generar un booleano aquí, lo que me parece sospechoso, un byte podría guardarse como
Esto comprueba si la tupla de entrada es como máximo
(0,0)
, lo cual solo es cierto para(0,0)
. En Python,True==1
yFalse==0
. Aún más sombrío, la salida a través del código de salida y el tratamiento como un Python Boolen ahorraría dos bytes:Si la cadena de E / S está permitida y los ceros iniciales están bien, existe la solución de 8 bytes
Esto concatena
a1b
, que siempre es más grande quea+b
.fuente
int.__eq__
por 10 bytesMATL y col. 1 byte
Acepta dos números naturales como entradas y los compara. Si son iguales, la salida es
1
y si no son iguales, la salida es0
. Este es el mismo enfoque que la solución de @ ATaco.MATL
Jalea (por @ ais523)
Stacked (por @Conor O'Brien)
APL (Dyalog APL) (por @ Adám)
J (por @ Adám)
En realidad (por @Mego)
Implícito (por @MD XF)
fuente
=
solución también funciona en Jelly por 1 byte. Pensé que lo mencionaría en los comentarios, ya que no parece que valga la pena crear una respuesta separada para la solución trivial.Javascript, 10 bytes
Toma 2 números usando la sintaxis de curry así:
fuente
Vim, 3 bytes / pulsaciones de teclas
Pruébalo en línea!
Tenga en cuenta que en
<C-a>
realidad es ctrl-a , que representa el byte0x01
.Me encanta cuando vim (que ni siquiera es un lenguaje de programación) puede competir con los lenguajes de golf. :) La entrada viene en este formato:
Esto simplemente incrementa el primer número en uno (Esta es la
<C-a>
parte) y luego une las representaciones de cadena de los dos números juntos. Por lo que puedo decir, esto nunca debería resultar en la suma.fuente
Brain-Flak , 8 bytes
Pruébalo en línea!
Esta es la respuesta mental más legible que he escrito. :)
Explicación:
Soluciones alternativas (también 8 bytes):
Hay muchas otras soluciones que solo funcionan con números positivos:
fuente
Jalea , 2 bytes
El + agrega las dos entradas juntas y luego 'incrementa la respuesta en uno
Pruébalo en línea!
fuente
(a+b)+1
sinoa+(b+1)
porque la cadena díada-mónadafG
se trata comof(a, G(b))
. En este caso es lo mismo, pero técnicamente su funcionamiento es diferente: PTI-Basic, 3 bytes
Soluciones alternativas:
Es interesante que haya hecho los ejemplos de la pregunta en TI-Basic, pero olvidó el más corto
A=B
(¿o tal vez fue nuestra decisión averiguarlo?)fuente
Prompt A,B:
a ellos lleva el recuento de bytes a ocho bytes cada uno.Brachylog , 2 bytes
Pruébalo en línea!
Explicación
Esto siempre dará como resultado
A+B+1
, siInput = [A, B]
.fuente
Mathematica, 5 bytes
Da como resultado la suma de los dos argumentos más 1. Por ejemplo,
1+##&[2,5]
rendimientos8
.(Nota al margen:
Binomial
aunque casi funciona,Binomial[1,0]=1
yBinomial[4,2]=6
son contraejemplos; sin embargo, creo que son los únicos contraejemplos).fuente
Pochhammer
Parece ser uno mejor queBinomial
. Por lo que puedo decir, solo1,0
falla.KroneckerDelta
funciona para todas las entradas (siendo el equivalente de la verificación de igualdad en algunos de los esolangs). En realidad, es más corto de reimplementarBoole[#==#2]&
, pero supongo que estaba buscando un incorporado que funcione como es.PHP, 17 bytes
Corre así:
Explicación
Esto solo concatena los argumentos. El primer argumento (nombre del script) contiene
-
. Entonces eso resulta en un número negativo, que niego con el signo menos. Luego agrego 1, en caso de que el primer número de entrada sea a0
(0123 = 123).fuente
Perl 6 , 4 bytes
Una lambda (formada por Whatever-curry ), que agrega el inverso booleano (1 o 0) del primer argumento al segundo argumento.
Pruébalo en línea!
fuente
Turtlèd , 12 bytes
hace números muy grandes
Pruébalo en línea!
Explicación:
Por lo tanto, produce 10 ** (x + y).
fuente
PHP, 19 bytes
fuente
Java (OpenJDK 9) , 10 bytes
Pruébalo en línea!
fuente
a->b->a-~b
. También funciona con Java 8, cualquier edición (por lo que no es necesario especificar OpenJDK 9)HODOR , 40 bytes (no competitivos)
¡Este es probablemente el programa más corto que Hodor haya escrito!
Esto es lo que sucede cuando no tienes nada que hacer para unas vacaciones escolares de 2 semanas: produce un montón de idiomas de broma realmente fáciles de codificar que no hacen absolutamente nada. Yay para vacaciones escolares!
Walder
era el nombre original de Hodor, por lo que es necesario para comenzar el programa.Hodor?!
toma un número de STDIN o un solo carácter y establece el acumulador en la entradaHodor
agregue 1 al acumuladorHODOR!
saca el acumulador como un númeroHODOR!!!
mata a Hodor! Noooooo!Este es el pseudocódigo:
fuente
SmileBASIC, 4 bytes
no (A) + B
1+1=2 -> !1+1 -> 0+1=1
0+1=1 -> !0+1 -> 1+1=2
fuente
2+1
?2+1=3 -> !2+1 -> 0+1=1
R, 13 bytes
¡Gracias a Jonathan Allan por sus aportes!
fuente
00
es lo mismo que0
si tal vezsep="1"
?scan()
debería estar bien, aceptando una entrada vectorial, como esta . Pero podemos hacer un byte mejor concat(sum(scan()+1))
. Tal vez hay más corto?cat
programa completo, la alternativa sería una función sin nombre por el mismo costo de bytefunction(a,b)a+b+1
05AB1E , 1 byte
Funciona igual que la
RProgN
respuesta.Comprueba si
a
yb
son lo mismo. Si es así, imprime1
. De lo contrario, imprimir0
Pruébalo en línea!
fuente
¢
(a.count (b)) también debería funcionar durante 1 byte.C
262419 bytesVersión sin golf:
Espero tener la especificación correcta. ¿Definitivamente se puede acortar?
@Pavel Gracias por guardar 2 bytes
@Neil Gracias por tu aporte.
fuente
()
alrededor!c+d
?return
, comoreturn!c+d;
MATLAB / Octava, 3 bytes
Acepta dos entradas y verifica la igualdad y los rendimientos
1
si son iguales o0
no.Demo en línea
fuente
@eq
? Eso devuelve un identificador de función que se puede usar para evaluar la función deseada, mientras que simplemente noeq
tiene sentido.@
convierte en una construcción de lenguaje válida. Pero tal vez solo estoy siendo pedante.brainfuck, 12 bytes
Solución simple que da salida
A+B+1
.Pruébalo en línea
fuente
,>,[-<++>]<.
,>,[-<++>]<.
solucióndc , 5 bytes
Pruébalo en línea!
Entrada: Dos números naturales separados por un espacio en stdin.
Salida: el dígito 1 seguido inmediatamente por la suma de los dos números, que es un número mayor que la suma de los dos números.
Ejemplo:
Entrada:
222 333
Salida:
1555
fuente
PHP, 13 bytes; (17 REPL-less)
Ejemplos
Para aquellos sin uso REPL
y correr usando
fuente
Cubix,
98 bytesExplicación
Ampliada, esta respuesta se ve así:
El orden de las instrucciones que se ejecutan es
II~-O@
Probado para todas las combinaciones de entradas donde ambas están en el rango
0-100
.Probarlo aquí .
fuente
APL - 4 bytes
Toma una matriz, suma sus elementos y agrega uno. Prueba:
fuente
√ å ı ¥ ® Ï Ø ¿ , 4 bytes
Para la salida, agregue
o
al final.fuente
Hexagonía , 7 bytes.
Pruébalo en línea!
O en un formato más legible,
Esto supera la solución actual de Hexagony de 11 bytes.
Explicación:
Si el primer número no es 0, el programa toma la siguiente ruta:
Esto lee el primer número y se bifurca a la derecha. Luego lee el segundo número, seguido de ajustar e intentar leer un tercero, pero eso no existe, por lo que lee 0. Esto se imprime y el programa termina (tenga en cuenta que si a> 0, ya que b no es negativo a + b> 0).
Si el primer número es 0, el programa toma la siguiente ruta para comenzar:
Esto lee el primer número y las ramas restantes. Toca la esquina, toma la ruta desde el borde noroeste porque el número es 0 y lee el segundo número. Se envuelve, luego incrementa el segundo número e imprime.
Rebota contra el
<
, imprimiendo la segunda entrada incrementada nuevamente. Incrementa el valor y toma el borde noreste nuevamente, pero esta vez porque el borde actual es un valor no negativo incrementado dos veces que es definitivamente positivo. Luego intenta obtener una tercera entrada, pero recibe 0 en su lugar.Finalmente se envuelve y se desvía con la flecha, luego intenta leer una cuarta entrada y obtiene 0 nuevamente. Se envuelve e intenta leer una quinta entrada y recibe 0 por última vez. Este se imprime y se envuelve a las
@
salidas.Tenga en cuenta que b * (10 ^ k + 1) * 10> 0 + b = b donde k es la longitud de b en dígitos, por lo que esto funciona.
fuente
Billar , 11 caracteres = 17 bytes
Implementos
x + y + 1
. Bastante elemental. Toma las entradas en dos líneas separadas. (Por cierto, el idioma se modificó ligeramente después del desafío, pero solo para evitar que ingrese el mensaje, no estoy seguro de si esta respuesta sigue siendo válida).7 caracteres = 11 bytes, no competitivos
Este es más corto pero solo es posible después de una nueva actualización del idioma:
Este uso
x == y
, que fue robado descaradamente de la solución RProgN de @ ATaco [espero que no te importe (:]. El$
, al salir, muestra cuántas bolas pasaron sobre él.fuente
slightly after the language
error tipográfico, también creo que cuando el idioma tenía la solicitud de entrada, todavía sería válido. No creo que los estándares de salida sean tan estrictos, y creo que se permiten salidas no suprimibles