Project Euler Problem #24

การเรียงสับเปลี่ยน (Permutation) เป็นการจัดเรียงตำแหน่งของวัตถุ ตัวอย่างเช่น 3124 เป็นหนึ่งในการเรียงสับเปลี่ยนที่เป็นไปได้ ของตัวเลข 1, 2, 3 และ 4 หากการเรียงสับเปลี่ยนทั้งหมดเรียงลำดับตามตัวเลข หรือตัวอักษร เราเรียกมันว่าการจัดลำดับแบบพจนานุกรม (Lexicographical Order)

ลำดับแบบพจนานุกรม ของ 0, 1 และ 2 คือ:

012 021 102 120 201 210

ลำดับที่หนึ่งล้าน ในการจัดลำดับแบบพจนานุกรม ของ ตัวเลข 0, 1, 2, 3, 4, 5, 6, 7, 8 และ 9 คืออะไร

(โจทย์นี้แปลมาจาก projecteuler.net สามารถเผยแพร่ภายใต้ลิขสิทธิ์ CC BY-NC-SA 2.0 UK )

24#

@IMPREM
ชัดเจน: 2/3 สร้างสรรค์: 1/3 กระชับ 2/3 ความเร็ว 2/3
Comment: ไปเจอ library permutation ด้วย น่าประทับใจครับ สั้น อ่านง่าย

@STGSafe
ชัดเจน: 2/3 สร้างสรรค์: 1/3 กระชับ 2/3 ความเร็ว 2/3
Comment: ไปเจอ library permutation ด้วย น่าประทับใจครับ สั้น อ่านง่าย :slight_smile:

@Rain
ชัดเจน: 2/3 สร้างสรรค์: 1/3 กระชับ 1/3 ความเร็ว 2/3
Comment: แทนที่จะเขียน [0-9] เอง ใช้ range() เลยครับ ง่ายดี และไม่แน่ใจว่า current_tuple = i
มีไว้เพื่ออะไร เปลี่ยนเป็น for current_tuple in all_permutations ก็ได้ครับ


Rain’s answer for #24