В этом задании вы получите четыре разные, но несколько взаимосвязанные задачи, которые необходимо решить определенным образом. Сначала я объясню задачи, а затем объясню, как вы должны их решить.
Ваш код должен для всех четырех задач принимать два положительных целых числа в качестве входных данных:, n,m
где n<m
. Все задачи должны решаться на одном языке. Ориентация матриц является необязательной (n-by-m может интерпретироваться как «n строк, m столбцов» или «n столбцов, m строк»).
Задание 1:
Создание (и выход / печать) вектор / список , состоящий из элементов: n, n+1 ... m-1, m
. Так, n=4, m=9
вы должны вывести: 4,5,6,7,8,9
.
Задача 2:
Создайте (и выведите / распечатайте) матрицу / массив / список списков (или эквивалент), выглядящий следующим образом:
n, n+1, ... m-1, m
n+1, n+2, ... m-1, m+1
...
n+m, n+m+1, ... 2*m-1, 2*m
Для n=4, m=9
вас следует вывести:
4, 5, 6, 7, 8, 9
5, 6, 7, 8, 9, 10
...
13, 14, 15, 16, 17, 18
Задача 3:
Создать (и вывести / распечатать) таблицу умножения n-на-m (в любом подходящем формате). Пример для 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
Задача 4:
Вывести / распечатать вектор / список, состоящий из элементов в таблице умножения из задачи 3, отсортированных в порядке возрастания с сохранением повторяющихся значений. Для n=4, m=9
, вы должны вывод: 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
.
Соревнование:
Теперь все вышеперечисленные задачи довольно тривиальны. Реальная проблема здесь заключается в том, что код для задачи 2 должен начинаться с кода для задачи 1, код для задачи 3 должен начинаться с кода для задачи 2, а код для задачи 4 должен начинаться с кода для задачи 3.
Чтобы было понятнее:
Предположим, что код для Задачи 1 (работает в Октаве):
@(n,m)(n:m)
Тогда ваш код для Задачи 2 может быть (работает в Octave):
@(n,m)(n:m)+(0:m)'
Код для задачи Task 3 должен быть (не работает в Octave):
@(n,m)(n:m)+(0:m)'"Code_for_task_3"
И наконец, код для Задачи 4 должен быть (не работает в Octave):
@(n,m)(n:m)+(0:m)'"Code_for_task_3""Code_for_task_4"
Это код-гольф , поэтому выигрывает представление с кратчайшим кодом для задания 4 на каждом языке. Как всегда: объяснения приветствуются.
0<n<m
или 0<=n<m
?
>2;
чтобы код предыдущей задачи по существу превратился в no-op?