Introducción
Salida de todos los números en una base específica que aparecería en una versión adaptada del juego de siete.
Desafío
Su tarea es generar todos los números en una base dada en un rango dado, omitiendo los que coinciden con ciertas condiciones.
Se le darán cuatro entradas: base
elim
start
y end
. Los roles de las cuatro variables son los siguientes:
base
especifica qué base estamos usando para las otras tres variables, y también para la salida. Una forma de expresarlo es usando un solo carácter que es '8', '9' o una letra mayúscula de 'A' a 'Z', usando 'A' para el sistema decimal y 'G' para el sistema hexadecimal. Las bases que se espera que sean compatibles son de 8 a 35 (inclusive). Esta es solo mi forma sugerida de expresarlobase
y lo usaré en la sección Ejemplo de entrada y salida , pero también está bien usar tu propia forma de expresarlo. Por ejemplo, puede elegir formatearbase
como su representación decimal habitual.start
yend
son dos cadenas que especifican el rango de números que se emitirán, expresados en el dadobase
. Sibase
esG
ystart
es10
yend
es1F
, necesita salida10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
, pero también debe eliminar algunos de ellos en función de lo queelim
es, que se explicará pronto.elim
es un solo carácter y debe ser un dígito válido en el dadobase
. Todos los números que contienen el dígitoelim
o son múltiplos deelim
deben eliminarse de la lista para generar el resultado final.
En el caso anterior, si elim
es así 7
, entonces 17
debe eliminarse porque contiene el dígito 7
. 15
y 1C
también necesitan ser eliminados porque son múltiplos de 7
. Entonces el resultado final sería10 11 12 13 14 16 18 19 1A 1B 1D 1E 1F
Casos de prueba
Input -> Output
G,7,10,1F -> 10 11 12 13 14 16 18 19 1A 1B 1D 1E 1F
A,3,1,100 -> 1 2 4 5 7 8 10 11 14 16 17 19 20 22 25 26 28 29 40 41 44 46 47 49 50 52 55 56 58 59 61 62 64 65 67 68 70 71 74 76 77 79 80 82 85 86 88 89 91 92 94 95 97 98 100
G,A,96,C0 -> 97 98 99 9B 9C 9D 9E 9F B0 B1 B2 B3 B5 B6 B7 B8 B9 BB BC BD BF C0
El tercer caso de prueba se agrega después de la publicación original. Todas las respuestas publicadas antes de la edición se probaron y pasaron la tercera prueba.
Especificaciones
La entrada siempre será válida, así que no se preocupe por el manejo de excepciones.
Este es el código de golf , gana el menor número de bytes.
Puede tomar entrada y proporcionar salida a través de cualquier formulario estándar , y puede elegir el formato.
Como de costumbre, las lagunas predeterminadas se aplican aquí.
Esto se basa en la (versión de la vida real) del juego de sietes .
Debo
base
tener al menos 8 años exclusivamente por gusto personal. Simplemente no quiero ver que el número de dígitos en la secuencia crezca demasiado rápido.
Marcador
Fragmento tomado de esta pregunta . Ejecute el fragmento para obtener el marcador.
fuente
base,elim,start,end
, 'A' para el sistema decimal , 'G' para el sistema hexadecimal ), trata de dar formato a los casos de prueba de una manera que es fácil use y considere usar el Sandbox para recibir comentarios antes de publicar en el sitio principal. En general, este es un buen primer desafío!start
,end
yelim
más indulgente."G,7,10,1F"
entrada, un enfoque totalmente flexible permitiría, por ejemplo,[16,7,16,31]
como entrada y[[1,0],[1,1],[1,2],[1,3],[1,4],[1,6],[1,8],[1,9],[1,10],[1,11],[1,13],[1,14],[1,15]]
como salida. (Tenga en cuenta que la primera respuesta suponía que algo de esto ya se había permitido, ya que es bastante estándar, pero depende totalmente de usted).Respuestas:
Emojicode ,
141116 bytes¡Gracias a @NieDzejkob por 25 bytes!
Pruébalo en línea!
fuente
Jalea ,
1211 bytes-1 gracias a Erik the Outgolfer (uso de "orden"
ọ
en lugar de divisible con argumentos intercambiadosḍ@
)Un programa completo que toma tres entradas como argumentos de línea de comando, todos los cuales emplean la notación decimal: una lista
[start, end]
y dos números,base
yelim
que imprime la representación Jelly de una lista de listas, donde cada uno representa los dígitos de un número enbase
cada dígito es un número decimal (por ejemplo, 1043 en base 20 sería[2,12,3]
, es decir, 2 × 20 2 + 12 × 20 1 + 3 × 20 0 ).Pruébalo en línea!
Una pequeña nota: esto no funcionará para rangos que incluyen valores negativos, pero el desafío vinculado comienza desde 1 y cuenta hacia arriba.
¿Cómo?
fuente
ḍ@
puede serọ
;) (por cierto, habría publicadorọÐḟ⁶b⁵ċÐḟ⁶
...)ọÐḟ
podría ser%Ðf
Julia 0.6 , 69 bytes
Las entradas son
base, elim, start:end
dondestart:end
está aUnitRange
. como base 10 enteros. Emite una lista de cadenas de los números en la base dada. Filtra la divisibilidad en forma entera, utiliza labase.
conversión de elementos en cadenas y luego filtra la contención de dígitos. Ejemplo llamado:f(10,3,1:100)
Pruébalo en línea!
fuente
Python 2 ,
10294 bytesPruébalo en línea!
La entrada y salida está en la base 10.
fuente
Perl 6 ,
9457 bytesPruébalo (94)
Como las reglas han cambiado:
Probarlo (Int, Int, Range) La
salida es una lista de cadenas en la base
Expandido
fuente
JavaScript, 82 bytes
¡Un polvo rápido antes de golpear el alcohol! Toma de entrada en base 10 en el orden
base
,elim
,start
yend
y da salida a una cadena delimitada espacio de base 10 números con un solo espacio final.Pruébalo en línea
fuente
Japt , 16 bytes
Reescrito rápidamente después de cambiar la especificación para permitir la entrada decimal, por lo que probablemente pueda mejorarse.
Toma de entrada en el orden
start
,end
,base
,elim
y da salida a una serie de números en la base dada.Intentalo
Explicación
fuente
elim
se especificaba como un solo dígito (es decir,0-9
) en lugar de un solo carácter en la base de entrada.Java 8, 92 bytes
Ingresar como
Integer (base), String (elem), int (start), int (end)
.Explicación:
Pruébalo en línea.
Los tres casos de prueba se ingresan así:
fuente