Die abelianischen Befehle

17

Etwas Hintergrund

In der Mathematik eine Gruppe ist ein Tupel ( G , •) , wobei G ist eine Gruppe , und • eine Operation auf G , so daß für zwei beliebige Elemente , x und y in G , xy auch ist G .

Für einige x , y , z in G lauten die Grundgruppenaxiome wie folgt:

  • G ist geschlossen unter •, dh xy in G
  • Die Operation • ist assoziativ , dh x • ( yz ) = ( xy ) • z
  • G hat ein Identitätselement , dh es existiert e in G, so dass xe = x für alle x
  • Die Operation • ist invertierbar , dh es gibt a , b in G, so dass ax = y und yb = x

Okay, das sind also Gruppen. Nun definieren wir eine abelsche Gruppe als eine Gruppe ( G , •), so dass • eine kommutative Operation ist. Das heißt, xy = yx .

Letzte Definition. Die Reihenfolge einer Gruppe ( G , •), bezeichnet mit | G |, ist die Anzahl der Elemente in der Gruppe G .

Aufgabe

Die abelschen Ordnungen sind die ganzen Zahlen n, so dass jede Gruppe von Ordnungen n abelsch ist. Die Reihenfolge der abelschen Ordnungen ist A051532 in OEIS. Ihre Aufgabe ist es, den n- ten Term dieser Sequenz (1-indiziert) mit einer ganzen Zahl n zu erzeugen . Sie müssen die Eingabe bis zur größten Ganzzahl unterstützen, damit nichts überläuft.

Eingaben können von Funktionsargumenten, Befehlszeilenargumenten, STDIN oder anderen geeigneten Elementen stammen.

Die Ausgabe kann von einer Funktion zurückgegeben, auf STDOUT gedruckt oder nach Bedarf ausgeführt werden. Es darf nichts an STDERR geschrieben werden.

Der Score ist die Anzahl der Bytes, die kürzesten Gewinne.

Beispiele

Hier sind die ersten 25 Terme der Sequenz:

1, 2, 3, 4, 5, 7, 9, 11, 13, 15, 17, 19, 23, 25, 29, 31, 33, 35, 37, 41, 43, 45, 47, 49, 51
Faxgerät
quelle
1
Verbunden.
Martin Ender

Antworten:

6

CJam ( 35 32 Bytes)

0q~{{)_mF_z~2f>@::#@m*::%+1&}g}*

Online-Demo

Präparation

Um einige der Informationen in OEIS neu zu formulieren, sind die abelschen Befehle die würfelfreien nullpotenten Befehle . und die nullpotenten Ordnungen sind die Zahlen, nfür die kein Prim-Power-Divisor p^k | nkongruent ist, um einen 1anderen Prim-Divisor zu modulieren.

Wenn wir den würfelfreien Test bestehen, reduziert sich der Nullpotenztest auf

  • Kein Primfaktor ist gleich einem 1anderen Primfaktor
  • Wenn die Multiplizität der Primzahl pist k, p^kmuss 1modulo nicht gleich ein weiterer Primfaktor sein.

Aber dann impliziert die zweite Bedingung die erste, sodass wir sie auf reduzieren können

  • Wenn die Multiplizität der Primzahl pist k, p^kmuss 1modulo nicht gleich ein weiterer Primfaktor sein.

Beachten Sie, dass das Wort "ein anderes" nicht erforderlich ist, da p^a == 0 (mod p)z a > 0.

0q~{       e# Loop n times starting from a value less than the first Abelian order
  {        e#   Find a number which doesn't satisfy the condition
    )_     e#     Increment and duplicate to test the condition on the copy
    mF     e#     Find prime factors with multiplicity
    _z~    e#     Duplicate and split into the primes and the multiplicities
    2f>    e#     Map the multiplicities to whether or not they're too high
    @::#   e#     Bring factors with multiplicities to top and expand to array of
           e#     maximal prime powers
    @m*::% e#     Cartesian product with the primes and map modulo, so for each
           e#     prime power p^k and prime q we have p^k % q.
    +      e#     Combine the "multiplicity too high" and the (p^k % q) values
    1&     e#     Check whether either contains a 1
  }g
}*
Peter Taylor
quelle
1
Vielen Dank für die sehr gründliche und faszinierende Erklärung! :)
Faxgerät
5

CJam, 46 45 Bytes

0{{)_mf_e`_:e>3a>\{~\,:)f#}%@fff%e_1e=|}g}ri*

Teste es hier.

Ich verwende die auf der OEIS-Seite angegebene Bedingung:

Die Primfaktorisierung nsei . Dann ist in dieser Reihenfolge für alle und nicht für alle und und gleich . --- TD Noe , 25. März 2007p1e1...prernei < 3ipik1 (mod pj)ij1 ≤ k ≤ ei

Ich bin mir ziemlich sicher, dass man damit Golf spielen kann, besonders wenn man den letzten Zustand überprüft.

Martin Ender
quelle
3

Pyth, 37 Bytes

e.f!&tZ|f>hT2JrPZ8}1%M*eMJs.b*LYSNJ)Q

Testsuite

Verwendet die Formel von OEIS, ohne Würfel und ohne Primfaktoren, die 1 mod ein Primfaktor außer 1 sind.

isaacg
quelle