Geben Sie bei einer positiven Ganzzahl so viele Hamming-Zahlen in der angegebenen Reihenfolge aus.
Regeln:
- Die Eingabe erfolgt als positive Ganzzahl
- Die Ausgabe sollte die ersten n Begriffe von https://oeis.org/A051037 sein
- Die Ausführungszeit muss <1 Minute sein
- Das ist Code-Golf ; kürzester Code gewinnt
code-golf
sequence
number-theory
grokus
quelle
quelle
1
s Ihren Spezifikationen. Es wird auch in Ordnung sein, dh keine ungeordnete Reihenfolge. :)Antworten:
Haskell,
1019792+ | n | ZeichenBerechnet die volle Million in 3.7s auf dem Computer, auf dem ich getestet habe (variabel mehr, wenn Sie die Ausgabe tatsächlich speichern möchten)
Ungolfed:
Alles in allem ist Haskell dafür bekannt, eine Liste als eine träge Funktion von sich selbst zu definieren, auf eine Weise, die tatsächlich funktioniert.
quelle
Python 181 Zeichen
quelle
h=[]
mit einem minimalen Tabulatorabstand und Zeilenumbrüchen für einzelne Zeichen entfernt. Die Dateigröße beträgt schließlich 187 Byte.h=[1]
. Geben Sie außerdem eine Nummer direkt im Quellcode an, um Zeichen für Zahlen zu speichern<1000000
.Ruby -
154231 ZeichenUnd jetzt ist es schnell genug, es gibt definitiv eine Menge Golf, die trotzdem passieren kann.
quelle
Perl, 94 Zeichen (aber zu langsam)
Ungolfed:
Es dauert 11 Minuten, um die ersten 100.000 Zahlen zu berechnen, und ich möchte nicht einmal über 1.000.000 nachdenken. Die ersten 10.000 werden in 3 Sekunden erledigt. es ist nur etwas, das O (n ^ 2) ähnelt :(
quelle
APL (Dyalog Classic) ,
3423 BytesProbieren Sie es online!
quelle
1↓0 1{⍺↑{⍵[⍋⍵]}∪,⍵∘.×⍳5}⍣≡⍨1+⊢
{⍺⍴∧∪,⍵×⍀⍳5}`⍣≡∘1
in Extended. (Backtick wegen Fehler benötigt.)Haskell, 71
Ausgabe
quelle
Ursala, 103
Ausgabe für
main = smooth<2,3,5>* nrange(1,20)
quelle
Mathematica, 54 Bytes
Ineffiziente aber kurze reine Funktion. Berechnet alle Produkte der Form
2^i * 3^j * 5^k
für0 <= i, j, k <= #
(#
ist das erste Argument für die Funktion), dannSort
s sie undTake
s nur das erste#
.quelle
Japt, 15 Bytes
Versuch es
Versuch es
3 Bytes
Wenn Jo Kings Ansatz als gültig angesehen wird.
Versuch es
quelle