Учитывая положительное целое число, выведите по порядку столько чисел Хэмминга .
Правила:
- На входе будет положительное целое число
- Выходными данными должны быть первые n членов https://oeis.org/A051037
- Время выполнения должно быть <1 минута
- Это код-гольф ; самый короткий код выигрывает
code-golf
sequence
number-theory
grokus
источник
источник
1
с соответствует вашим спецификациям. Это также будет в порядке, то есть не неупорядоченная последовательность. :)Ответы:
Haskell,
1019792+ | n | персонажиВычисляет полный миллион за 3,7 с на машине, на которой я тестировал (значительно больше, если вы действительно хотите сохранить результат)
Ungolfed:
Весь Haskell хорошо известен тем, что определяет список как ленивую функцию, которая действительно работает.
источник
Python 181 символов
источник
h=[]
, используя минимальное расстояние табуляции и разрывы строк из одного символа, и размер файла в итоге составил 187 байт.h=[1]
. Также дайте номер прямо в исходном коде, чтобы сохранить символы для цифр<1000000
.Рубин -
154231 символовИ теперь это достаточно быстро, хотя определенно много игры в гольф все еще может случиться.
источник
Perl, 94 символа (но слишком медленно)
Ungolfed:
Требуются 11 минут, чтобы вычислить первые 100 000 чисел, и я даже не хочу думать о 1 000 000. Первые 10000 делаются за 3 секунды; это просто нечто, похожее на O (n ^ 2) :(
источник
APL (Dyalog Classic) ,
3423 байтаПопробуйте онлайн!
источник
1↓0 1{⍺↑{⍵[⍋⍵]}∪,⍵∘.×⍳5}⍣≡⍨1+⊢
{⍺⍴∧∪,⍵×⍀⍳5}`⍣≡∘1
в расширенном. (Необходим обратный удар из-за ошибки.)Хаскелл, 71
Выход
источник
Урсала, 103
Выход для
main = smooth<2,3,5>* nrange(1,20)
источник
Mathematica, 54 байта
Неэффективная, но короткая чистая функция. Вычисляет все произведения вида
2^i * 3^j * 5^k
для0 <= i, j, k <= #
(#
это первый аргумент функции), затемSort
s их иTake
только первый#
.источник
Japt, 15 байт
Попытайся
Попытайся
3 байта
Если подход Джо Кинга считается действительным.
Попытайся
источник