Связанный: Давайте создадим цифровую мозаику , Print / Output L-phabet . Песочница пост здесь
Учитывая 2 входа, C = columns and rows, S = starting point
выведите матрицу следующим образом:
Input 4, 3
1 2 3 0
2 2 3 0
3 3 3 0
0 0 0 0
объяснение
Данный C = 4, S = 3
1) Создать C x C
матрицу, заполненную0
4 columns
4 _____|____
| |
r --0 0 0 0
o | 0 0 0 0
w | 0 0 0 0
s --0 0 0 0
2) Заполните S
значения в строке и столбце S
, затем вычтите 1 из S
и повторяйте до S = 0
. Этот случайS = 3
Column 3
S = 3 |
v
0 0 3 0
0 0 3 0
Row 3-->3 3 3 0
0 0 0 0
Column 2
S = 2 |
v
0 2 3 0
Row 2-->2 2 3 0
3 3 3 0
0 0 0 0
Column 1
S=1 |
v
Row 1-->1 2 3 0
2 2 3 0
3 3 3 0
0 0 0 0
Final Result
1 2 3 0
2 2 3 0
3 3 3 0
0 0 0 0
правила
- Предполагать
C >= S >= 0
- Выходными данными могут быть матрица, список списков, массив (1-мерный или 2-мерный) и т. Д.
- Вы можете принимать входные данные через любой формат ввода / вывода по умолчанию
- Ваша программа, функция и т. Д. Могут быть 1-индексными или 0-индексированными. Пожалуйста, укажите, какой из них.
Примечание Объяснение 1-индексация
Критерии победы код-гольф
Октава , 31 байт
Анонимная функция, которая возвращает матрицу. Использует индексирование на основе 1.
Попробуйте онлайн!
источник
Haskell ,
4745 байт-2 байта, изменяя формат вывода на одномерный список.
Попробуйте онлайн!
объяснение
Термин
x >>= (<$> x) . max
является гольфовой версиейкоторый оценивает
[1,2,3,4..c, 2,2,3,4..c, 3,3,3,4..c, ..., c,c,c,c..c]
. Теперь нам нужно только заставить значения, как0
только они превысят то,s
что мы достигаемsum [ j | j <= s]
.источник
APL (Dyalog Classic), 12 байт
Попробуйте онлайн!
Любые советы по превращению этого в поезд приветствуются.
источник
APL (Дьялог) , 12 байт
Попробуйте онлайн!
источник
o×⎕≥o←∘.⌈⍨⍳
ли разрешено что-то подобное , или вам придется присвоить это функции, чтобы это считалось?JavaScript (ES6), 61 байт
Принимает ввод в синтаксисе карри
(c)(s)
, где s индексируется 1. Возвращает одномерный массив.Попробуйте онлайн!
источник
Желе , 6 байт
Полная программа *, принимающая целые числа
C
иS
печатающая представление Jelly списка списков целых чисел, как определено (с 1 индексированием).Попробуйте онлайн! (форматирует результат диады в виде сетки чисел для удобства чтения)
Как?
* Причина, по которой это полная программа, заключается в использовании доступа к аргументам программы
⁴
. В качестве диадической ссылки этот код будет опираться на то, как программа, которая его использует, называется.Повторно используемая диадическая ссылка в 8 байтов (с символом S слева и C справа): многоразовая диадическая ссылка в 8 байтов (с символом C слева и S справа):
RiⱮⱮ»þ`}
RiⱮⱮ⁹»þ¤
источник
Java 10, 88 байт
Попробуйте онлайн.
Объяснение:
источник
PHP , 92 байта
Это «1-индексирование».
Чтобы запустить это:
Пример:
Или попробуйте онлайн!
источник
Stax , 10 байт
Запустите и отладьте его
Как это устроено:
источник
Excel VBA, 65 байт
Непосредственная оконная функция, которая принимает входные данные
[A1:B1]
и выводит их в диапазон[C1].Resize([A1],[A1])
.Ввод, вывод
Вход находится в диапазоне
[A1:B1]
источник
J , 18 байт
Гораздо дольше, чем оба решения APL.
Попробуйте онлайн!
источник
MATLAB, 58 байт (спасибо анонимному пользователю)
Просто заполняя элементы матрицы соответствующим номером, запустив цикл. Возможно, можно быть умнее с
arrayfun
источник
zeros(c)
который сохраняет несколько байтов. Также вы видели этот ответ Octave, я думаю, он будет работать и в Matlab?max()
нужно принять аргументы одинаковой формыfunction o=f(c,s);o=zeros(c);for j=s:-1:1;o(1:s,1:s)=j;end
.o(1:j,1:j)=j
C # (.NET Core) , 85 байт
Попробуйте онлайн!
Порт ответа Кевина Круйссена , который был намного лучше моего.
источник
Python 2 , 58 байт
Попробуйте онлайн!
Выводит 1D список длины
C*C
.источник
Уголь , 19 байт
Попробуйте онлайн! Ссылка на подробную версию кода. 3 байта используются для преобразования выходных данных в десятичную и для удобного форматирования. Объяснение:
источник
Чисто , 67 байт
Попробуйте онлайн!
Определяет
$ :: Int Int -> [[Int]]
предоставление ответа с использованием индексации на основе 1.источник
Perl 6 , 37 байт
Попробуйте онлайн!
Возвращает матрицу в виде одномерного массива.
источник
Mathematica 44 байта
источник