คำสั่ง Abelian


17

พื้นหลังบางส่วน

ในวิชาคณิตศาสตร์เป็นกลุ่มเป็น tuple ( G , •) ที่Gเป็นชุดและ•อยู่ในการดำเนินการเกี่ยวกับGดังกล่าวว่าสำหรับการใด ๆ สององค์ประกอบxและy ที่ในG , xปียังอยู่ในG

สำหรับx , y , zในG , สัจพจน์พื้นฐานของกลุ่มมีดังนี้:

  • Gถูกปิดภายใต้•, คือxyในG
  • การดำเนินการ•มีความสัมพันธ์เช่นx • ( yz ) = ( xy ) • z
  • Gมีองค์ประกอบตัวตนนั่นคือมีeในGเช่นxe = xสำหรับทุกx
  • การดำเนินการ•เป็นinvertableคือมีอยู่, ในGดังกล่าวว่า• x = YและY = x

โอเคนั่นคือกลุ่ม ตอนนี้เรากำหนดกลุ่ม Abelianเป็นกลุ่ม ( G , •) เช่นนั้น•เป็นการดำเนินการสับเปลี่ยน นั่นคือxY = Y • x

คำจำกัดความล่าสุด การสั่งซื้อของกลุ่ม ( G , •) แสดง | G | เป็นจำนวนขององค์ประกอบในชุดG

งาน

คำสั่ง Abelian เป็นจำนวนเต็มnเช่นนั้นทุกกลุ่มของคำสั่งnคือ Abelian ลำดับของคำสั่ง Abelian คือA051532ใน OEIS งานของคุณคือการผลิตnระยะเวลาของลำดับนี้ TH (1 จัดทำดัชนี) ให้เป็นจำนวนเต็มn คุณต้องรองรับการป้อนข้อมูลจนถึงจำนวนเต็มที่มากที่สุดซึ่งจะไม่มีอะไรล้นเกิน

อินพุตอาจมาจากอาร์กิวเมนต์ฟังก์ชันฟังก์ชันอาร์กิวเมนต์บรรทัดคำสั่ง STDIN หรืออะไรก็ได้ที่สะดวก

สามารถส่งคืนเอาต์พุตจากฟังก์ชันพิมพ์ไปยัง STDOUT หรืออะไรก็ได้ที่สะดวก ไม่ควรเขียนอะไรถึง STDERR

คะแนนคือจำนวนไบต์ชนะสั้นที่สุด

ตัวอย่าง

นี่คือ 25 คำแรกของลำดับ:

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

คำตอบ:


6

CJam ( 35 32 ไบต์)

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

การสาธิตออนไลน์

การผ่า

การใช้ถ้อยคำบางส่วนของข้อมูลใน OEIS ที่คำสั่งซื้อคริสต์เป็นก้อนฟรีสั่งซื้อ nilpotent ; และคำสั่ง nilpotent คือตัวเลขnที่ไม่มีตัวหารพลังงานหลักที่p^k | nสอดคล้องกับ1โมดูโลตัวหารหลักอื่น

ถ้าเราผ่านการทดสอบแบบลูกบาศก์ฟรีการทดสอบ nilpotency จะลดลง

  • ไม่มีปัจจัยสำคัญเท่ากับ 1โมดูโลอีกตัวประกอบตัวแรก
  • หากหลายหลากของนายกpคือk, p^kไม่ต้องเท่ากับ1แบบโมดูโลอีกหนึ่งปัจจัยที่สำคัญ

แต่จากนั้นเงื่อนไขที่สองหมายถึงเงื่อนไขแรกดังนั้นเราจึงสามารถลดได้

  • หากหลายหลากของนายกpคือk, p^kไม่ต้องเท่ากับ1แบบโมดูโลอีกหนึ่งปัจจัยที่สำคัญ

โปรดทราบว่าคำว่า "อีก" ไม่จำเป็นเพราะสำหรับp^a == 0 (mod p)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
}*

1
ขอบคุณสำหรับคำอธิบายอย่างละเอียดและน่าสนใจ! :)
เครื่องโทรสาร

5

CJam, 46 45 ไบต์

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

ทดสอบที่นี่

ฉันใช้เงื่อนไขที่ระบุไว้ในหน้า OEIS:

ให้ตัวประกอบที่สำคัญของBEn แล้วอยู่ในลำดับนี้ถ้าทั้งหมดและไม่เท่ากันทั้งหมดและและ --- TD Noe , 25 มีนาคม 2007p1e1...prernei < 3ipik1 (mod pj)ij1 ≤ k ≤ ei

ฉันค่อนข้างแน่ใจว่าสิ่งนี้สามารถเล่นกอล์ฟได้โดยเฉพาะการตรวจสอบสภาพสุดท้าย


3

Pyth, 37 ไบต์

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

ชุดทดสอบ

ใช้สูตรจาก OEIS, cubefree และไม่มีตัวประกอบกำลังหลักที่ 1 โมดูเป็นตัวประกอบตัวอื่นที่ดีกว่า 1

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.