Не следует путать с наименее распространенным множителем .
Получив список натуральных чисел с более чем одним элементом, верните наиболее распространенное произведение двух элементов в массиве.
Например, ГМА списка [2,3,4,5,6]
является 12
, как таблица продуктов:
2 3 4 5 6
---------------
2 | # 6 8 10 12
3 | # # 12 15 18
4 | # # # 20 24
5 | # # # # 30
6 | # # # # #
Спасибо DJMcMayhem за стол
Как 12
представляется самый раз (два раза как 2*6
и 3*4
). Обратите внимание, что мы не включаем продукт элемента и самого себя, поэтому 2*2
или 4*4
не отображаются в этом списке. Однако идентичные элементы все равно будут умножены, поэтому таблица [2,3,3]
выглядит следующим образом:
2 3 3
----------
2 | # 6 6
3 | # # 9
3 | # # #
С существом MCM 6
.
В случае связи вы можете вернуть любой из связанных элементов или список всех из них.
- Это код-гольф , поэтому выигрывает самый короткий счетчик байтов для каждого языка!
Тест-кейсы:
[2,3,4,5,6] -> 12
[7,2] -> 14
[2,3,3] -> 6
[3,3,3] -> 9
[1,1,1,1,2,2] -> 2
[6,200,10,120] -> 1200
[2,3,4,5,6,7,8,8] -> 24
[5,2,9,10,3,4,4,4,7] -> 20
[9,7,10,9,7,8,5,10,1] -> 63, 70, 90 or [63,70,90]
code-golf
array-manipulation
Джо Кинг
источник
источник
[3,3,3] -> 9
). При всех ваших текущих тестовых примерах отфильтровывание любых пар, в которых элементы одинаковы (даже для тестовых случаев, например,[2,3,3]
содержащих одинаковые значения), все равно будет содержать правильные результаты теста, но не удастся выполнить для этого теста, поскольку ни одна не останется после фильтрации.Ответы:
Брахилог , 11 байт
Попробуйте онлайн!
объяснение
источник
R ,
545041 байтПопробуйте онлайн!
В качестве альтернативы для
545344 байтов:Попробуйте онлайн!
В принципе, последняя версия выводит соответствующий результат даже без
names
функции, но сопровождается подсчетом таких наиболее часто встречающихся продуктов, о которых не просят ...Спасибо CriminallyVulgar за -4 и -1, и Джузеппе за -9 на обоих.
источник
combn(scan(),2,prod)
работает вместо использованияapply
Желе , 6 байт
Попробуйте онлайн! или проверить набор тестов .
Как это работает
источник
Pyth, 12 байт
Тестирование
Сначала мы берем все 2 входных комбинации элементов без замены (
.cQ2
). Затем мы сопоставляем каждую из этих пар с их произведением (*M
). Далее мы перезаписываем входную переменную списком products (=
). Далее сортируем список товаров по количеству появлений в списке товаров (o/QN
). Наконец, возьмите последний элемент отсортированного списка (e
).источник
MATL ,
87 байтПопробуйте онлайн!
(-1 байт, используя метод из @Mr. Xcoder's Jelly answer .)
Старый ответ:
8 байт
Попробуйте онлайн!
источник
05AB1E ,
86 байт-2 байта благодаря @Kaldo .
Попробуйте онлайн или проверьте все контрольные примеры .
Объяснение:
источник
ù
.Mathematica, 32 байта
-17 байт (и исправление) благодаря JungHwan Мин .
Чистая функция. Принимает список номеров в качестве входных данных и возвращает список MCM в качестве выходных данных.
источник
{3, 3, 3}
. Исправлено:Commonest[1##&@@@#~Subsets~{2}]&
Subsets
не считал повторов как отдельные элементы. Кажется, что это так, но спасибо!MATLAB, 43 байта
Это также своего рода скороговорка!
объяснение
источник
I'*I*1-eye
Почему бы не простоI'*I-eye
?Perl 6 ,
4138 байтПопробуйте онлайн!
источник
:
оператор.Stax ,
1210 байтЗапустите и отладьте его
источник
Python 3 ,
7772 байтаПопробуйте онлайн!
источник
Атташе , 59 байт
Попробуйте онлайн!
Все еще работаю над игрой в гольф немного, но я думаю, что это почти оптимально для подхода, который я выбрал.
объяснение
Это композиция из трех функций:
{Flat[UpperTriangle&1!Table&_!`*]^^0}
SortBy#`&&:`~
Last
Первая функция выполняет основную часть вычислений:
Второе немного сложнее, но делает что-то довольно простое. Во-первых, полезно знать, что
f&n
это функция, которая при вызове с аргументами...x
возвращаетf[...x, n]
.f&:n
похоже, возвращаясьf[n, ...x]
. Теперь давайте разберем это:Сначала
f#g
создается форк. При вводеn
возвращаетсяf[n, g[n]]
. Однако в данном случаеf
это функция~SortBy
.~f
инвертирует аргументы функции. Это означает, что~f#g
эквивалентноf[g[n], n]
или здесьSortBy[(`& &: `~)[n], n]
.`& &: `~
следует за формойf&:n
. Но что`&
и`~
? Они являются «операторными кавычками» и возвращают функцию, эквивалентную указанному в кавычках оператору. Так что, в данном случае,`&
это то же самое, что и${ x & y }
. Имея это в виду, это выражение эквивалентно следующему для бинарных операторов:Это дает функцию
`~&x
, гдеx
результат первой функции.n ~ a
считает вхожденияn
вa
. Таким образом, это возвращает функцию, которая подсчитывает вхождения аргумента в вычисляемом массиве из функции 1.Возвращаясь к
SortBy
этому, этот каждый элемент в массиве по количеству раз, когда он появляется в нем.Наконец,
Last
берет элемент, который встречается чаще всего. Связи нарушаются алгоритмом сортировки.источник
[5, 2, 9, 10, 3, 4, 4, 4, 7] -> 16
а20
не без этого.JavaScript (ES6),
7270 байтПопробуйте онлайн!
источник
Древесный уголь , 24 байта
Попробуйте онлайн! Ссылка на подробную версию кода. Объяснение:
Пока входной массив не пустой ...
... вытолкнуть последний элемент и умножить оставшуюся часть массива на этот элемент ...
... и отправить результаты в предварительно определенный пустой список.
Подсчитайте, сколько раз каждый продукт появляется в списке, и возьмите максимум ...
... затем отфильтруйте продукты, количество которых равно этому максимуму ...
... затем вытолкните последний элемент и приведите к строке для неявной печати.
источник
Шелуха , 7 байт
Попробуйте онлайн!
объяснение
источник
APL (Dyalog Unicode) ,
29 2719 байтовПопробуйте онлайн!
Молчаливый фн.
Спасибо Adám за молчаливую версию и 2 байта.
Спасибо ngn за 8 байтов!
Как:
источник
Japt ,
2016 байтовПопробуйте онлайн!
источник
CJam ,
7068 байтПопробуйте онлайн!
объяснение
Вам нужно будет прокрутить вправо, чтобы увидеть объяснения, так как код довольно длинный, а также пояснения.
Это был абсолютный кошмар, чтобы написать. У CJam нет функции powerset (в отличие от множества других языков игры в гольф - отличный выбор с моей стороны), что означает, что мне пришлось вручную находить powerset. Тем не менее, это дало мне возможность игнорировать любое недопустимое количество факторов, в отличие от других ответов с функцией powerset.
Это должно быть в гольф, учитывая, что я ужасен в CJam.
Изменения:
Елена отрезала 2 байта!
Старый:
q',/S*~_,1-:L{LX-,0a\+[{X1++}*](;{_X=\_Y=@*\}fY}fX]~;]_{\_@e=}$\;_,1-=
Новый:
q',/S*~_,(:L{LX-,0a\+[{X1++}*](;{_X=\_Y=@*\}fY}fX]~;]_{\_@e=}$\;_,(=
Изменяя
1-
s просто,(
мы получаем тот же эффект, но с меньшим количеством байтов.источник
Java (JDK 10) , 132 байта
Попробуйте онлайн!
источник
Haskell ,
9694 байта-2 байта благодаря Ними (используя
sortOn(0<$)
вместоlength
)!Попробуйте онлайн!
источник
MATLAB 39 байт
Также проверьте ответ Джейкоба Уотсона
источник
b=triu(a'*a,1);
экономит 4 байта.triu
изначально, но как-то отошелSQL Server, 93 байта
Предполагается, что входные данные поступают из таблицы вида
Пример таблицы населения:
Объяснение:
Я предполагаю, что «список целых чисел» будет иметь индекс, связанный с ними, который в моем случае является столбцом
i
. Столбецa
содержит значения списка.Я создаю продукты каждой пары, где левая пара появляется в списке раньше, чем правая. Затем я группируюсь по продукту и сортирую по наиболее многочисленным номерам.
Мне немного грустно, что я не смог использовать ни cte, ни разделы, но они были слишком длинными.
SELECT
это очень дорогое ключевое слово.Альтернатива, 183 байта
Если в SQL нет отдельного столбца индекса, вот решение, в котором я создаю индекс с помощью
ROW_NUMBER
функции. Лично я не забочусь о заказе, но заказ требуется, и использованиеa
столбца является самым коротким.источник
CJam , 29 байт
Попробуйте онлайн!
источник
Бурлеск - 8 байт
Попробуйте это онлайн здесь.
(и да, Бурлеск также имеет команду для "наименее общего элемента")
источник
C # (интерактивный компилятор Visual C #) , 95 байт
Попробуйте онлайн!
Меньше гольф-кода:
источник
PHP, 91 байт
принимает входные данные из аргументов командной строки; запустить
-nr
или попробовать это онлайн .Используйте PHP 7, чтобы избежать предупреждения STRICT MODE.
источник
J,
29252423 байтаПопробуйте онлайн!
как
источник
Japt
-h
, 11 байтПопытайся
Попытайся
источник
APL (NARS), 53 символа, 106 байтов
Тест:
источник