En este desafío, obtendrá cuatro tareas diferentes pero algo relacionadas que deben resolverse de manera específica. Primero, explicaré las tareas, luego seguiré una explicación de cómo debes resolverlo.
Su código para las cuatro tareas debe tomar dos enteros positivos como entrada:, n,m
donde n<m
. Todas las tareas deben resolverse en el mismo idioma. La orientación de las matrices es opcional (n-por-m puede interpretarse como "n filas, m columnas" o "n columnas, m filas").
Tarea 1:
Crear (y de salida / impresión) un vector / lista que consiste de los elementos: n, n+1 ... m-1, m
. Así, por n=4, m=9
, que es la Salida: 4,5,6,7,8,9
.
Tarea 2:
Cree (y envíe / imprima) una matriz / matriz / lista de listas (o equivalente) con este aspecto:
n, n+1, ... m-1, m
n+1, n+2, ... m-1, m+1
...
n+m, n+m+1, ... 2*m-1, 2*m
Para n=4, m=9
usted debe salir:
4, 5, 6, 7, 8, 9
5, 6, 7, 8, 9, 10
...
13, 14, 15, 16, 17, 18
Tarea 3:
Cree (y envíe / imprima) una tabla de multiplicación n-por-m (en cualquier formato adecuado). Ejemplo para n=4, m=9
:
1 2 3 4
2 4 6 8
3 6 9 12
4 8 12 16
5 10 15 20
6 12 18 24
7 14 21 28
8 16 24 32
9 18 27 36
Tarea 4:
Imprima / imprima un vector / lista que consta de los elementos en la tabla de multiplicación de la tarea 3, ordenados en orden ascendente, manteniendo valores duplicados. Para n=4, m=9
, que es la Salida: 1, 2, 2, 3, 3, 4, 4, 4, 5, 6, 6, 6, 7, 8, 8, 8, 9, 9, 10, 12, 12, 12, 14, 15, 16, 16, 18, 18, 20, 21, 24, 24, 27, 28, 32, 36
.
El reto:
Ahora, todas las tareas anteriores son bastante triviales. El verdadero desafío aquí es que el código para la tarea 2 debe comenzar con el código para la tarea 1, el código para la tarea 3 debe comenzar con el código para la tarea 2 y el código para la tarea 4 debe comenzar con el código para la tarea 3.
Para que quede más claro:
Supongamos que el código para la Tarea 1 es (funciona en Octave):
@(n,m)(n:m)
Entonces su código para la Tarea 2 podría ser (funciona en Octave):
@(n,m)(n:m)+(0:m)'
El código para la tarea Tarea 3 debe ser (no funciona en Octave):
@(n,m)(n:m)+(0:m)'"Code_for_task_3"
Y finalmente, el código para la Tarea 4 debe ser (no funciona en Octave):
@(n,m)(n:m)+(0:m)'"Code_for_task_3""Code_for_task_4"
Este es el código de golf , por lo que gana la presentación con el código más corto para la tarea 4 en cada idioma. Como siempre: las explicaciones son altamente recomendables.
0<n<m
o 0<=n<m
?
>2;
para que el código de la tarea anterior se convierta esencialmente en un no-op?