ลักษณะ
รหัสเดิมทำสิ่งต่อไปนี้:
CG Convert "abcdefghijklmnopqrstuvwxyz" from base 256 to integer, yielding
156490583352162063278528710879425690470022892627113539022649722.
^3y21 Compute 3^(2 * 21).
% Calculate the modulus.
ตั้งแต่156490583352162063278528710879425690470022892627113539022649722 - 58227066ให้156490583352162063278528710879425690470022892627113538964422656ซึ่งเท่ากับ2 26 × 3 × 7 × 7477 × 381524422711 ×× 17007550201751761 2288745700077000184147 , ผลลัพธ์ที่ต้องการสามารถรับได้โดยการแทนที่^3y21
ด้วยสิ่งที่ประเมินตัวหารของผลิตภัณฑ์นี้และมีขนาดใหญ่กว่า58,227,066 58,227,066
^
ในรหัสเดิมแสดงให้เห็นว่าเราอาจจะใช้ในการคำนวณพลังของ2ที่3ที่เราสามารถคำนวณหารเหมาะสมของรูปแบบ3 × 2 n
ทั้งสองกำลังทำให้เข้าใจผิด โซลูชั่นที่มีระยะทาง Levenshtein 3 ( %CG^2 26
, %CG^y2 13
, %CG^4y13
) หรือ 4 (%CG.<3y13
) จะพบได้อย่างง่ายดาย แต่วิธีการแก้ปัญหาในระยะทางที่ 2 ต้องใช้วิธีการที่แตกต่างกัน
ตัวอักษรตัวพิมพ์เล็ก ( G
) มี 26 ตัวอักษรดังนั้นชุดกำลังของมัน (ชุดของลำดับที่เพิ่มขึ้นอย่างเข้มงวดทั้งหมดของตัวอักษรตัวเล็ก) มี2 26องค์ประกอบ โดยการแทนที่y2
ด้วยyG
เราคำนวณชุดพาวเวอร์นี้
เราสามารถดึงความยาวของชุดโดยแทนที่3
ด้วยl
ซึ่งทำให้เรามีค่า^lyG1
เช่น2 26ยกกำลังแรก
รหัส
%CG^lyG1
โปรดทราบว่าสิ่งนี้จะใช้ได้กับคอมพิวเตอร์ที่มีหน่วยความจำเพียงพอ (ประมาณ 6.43 GiB ตามtime
) ดังนั้นจึงไม่สามารถใช้งานล่ามออนไลน์ได้
นี่คือวิธีที่คุณสามารถตรวจสอบผลลัพธ์จากบรรทัดคำสั่ง:
$ \time -v pyth -c '%CG^lyG1'
58227066
Command being timed: "pyth/pyth.py -c %CG^lyG1"
User time (seconds): 30.73
System time (seconds): 2.12
Percent of CPU this job got: 100%
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:32.85
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 6742564
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 0
Minor (reclaiming a frame) page faults: 2269338
Voluntary context switches: 1
Involuntary context switches: 58
Swaps: 0
File system inputs: 0
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0