У цьому виклику ви отримаєте чотири різні, але дещо пов’язані із цим завдання, які необхідно вирішити певним чином. Спочатку я поясню завдання, потім слідує пояснення, як ви повинні її вирішити.
Ваш код повинен для всіх чотирьох завдань приймати як позитивні два цілих числа:, 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-на-м (у будь-якому відповідному форматі). Приклад для 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 є (працює в Octave):
@(n,m)(n:m)
Тоді ваш код для завдання 2 може бути (працює в Octave):
@(n,m)(n:m)+(0:m)'
Код для завдання Завдання 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;
щоб код попереднього завдання по суті був відтворений?