ในส่วนนี้ เราจะมาเรียนรู้วิธีค้นหาการเรียงสับเปลี่ยนและการรวมกันของลำดับที่กำหนดโดยใช้ภาษาการเขียนโปรแกรมหลาม
ข้อได้เปรียบที่สำคัญอย่างหนึ่งของ python เหนือภาษาการเขียนโปรแกรมอื่นๆ คือมันมาพร้อมกับไลบรารี่จำนวนมาก
เราจะใช้ python inbuilt package เพื่อค้นหาการเรียงสับเปลี่ยนและการรวมกันของลำดับที่กำหนด
อัลกอริทึมการค้นหาการเรียงสับเปลี่ยนและการรวมกัน
-
ขั้นตอนที่ 1 :นำเข้าแพ็คเกจที่จำเป็น ขั้นตอนแรกคือการนำเข้าแพ็คเกจที่จำเป็น เนื่องจากเราจะใช้แพ็คเกจ itertools ดังนั้นเราจึงนำเข้าโดยใช้
>>> import itertools >>>
-
ขั้นตอนที่ 2 :รับการเรียงสับเปลี่ยนและการรวมลำดับทั้งหมด ขั้นตอนที่สองคือการป้อนรายการของลำดับ/รายการเป็นอินพุตที่จะส่งคืนการเรียงสับเปลี่ยนและชุดค่าผสมทั้งหมดในรูปแบบของรายการสิ่งอันดับ
-
นอกจากนี้เรายังสามารถกำหนดความยาวของการเปลี่ยนแปลงและการรวมกันได้
-
ขั้นตอนที่ 3 :การพิมพ์ผลลัพธ์ขั้นตอนสุดท้ายคือการพิมพ์การเรียงสับเปลี่ยนและการรวมชุดของลำดับทั้งหมด เราสามารถใช้ฟังก์ชันวนซ้ำเพื่อพิมพ์ผลลัพธ์ได้
การเรียงสับเปลี่ยน
มาหาการเรียงสับเปลี่ยนของรายการสามรายการกัน
ตัวอย่างที่ 1
from itertools import permutations seq = permutations(['a','b','c']) for p in list(seq): print(p)
ผลลัพธ์
('a', 'b', 'c') ('a', 'c', 'b') ('b', 'a', 'c') ('b', 'c', 'a') ('c', 'a', 'b') ('c', 'b', 'a')
ตัวอย่างที่ 2:
ค้นหาการเรียงสับเปลี่ยนโดยกำหนดความยาวของการเปลี่ยนแปลง
from itertools import permutations seq = permutations(['p', 'y', 't', 'h', 'o', 'n'], 2) for p in list(seq): print(p)
ผลลัพธ์
('p', 'y') ('p', 't') ('p', 'h') ('p', 'o') ('p', 'n') ('y', 'p') ('y', 't') ('y', 'h') ('y', 'o') ('y', 'n') ('t', 'p') ('t', 'y') ('t', 'h') ('t', 'o') ('t', 'n') ('h', 'p') ('h', 'y') ('h', 't') ('h', 'o') ('h', 'n') ('o', 'p') ('o', 'y') ('o', 't') ('o', 'h') ('o', 'n') ('n', 'p') ('n', 'y') ('n', 't') ('n', 'h') ('n', 'o')
ชุดค่าผสม
มาหาการรวมกันของลำดับโดยใช้ python
ตัวอย่างที่ 1:กำหนดความยาวของชุดค่าผสม
#Import itertools package from itertools import combinations #Getting all combination of a particular length. combi = combinations(['p', 'y', 't', 'h', 'o', 'n'], 5) #Print the list of combinations for c in list(combi): print(c)
ผลลัพธ์
('p', 'y', 't', 'h', 'o') ('p', 'y', 't', 'h', 'n') ('p', 'y', 't', 'o', 'n') ('p', 'y', 'h', 'o', 'n') ('p', 't', 'h', 'o', 'n') ('y', 't', 'h', 'o', 'n')
ตัวอย่างที่ 2:การรวมกันที่มีการแทนที่
#Import itertools package from itertools import combinations_with_replacement #Getting all combination by defining a particular length. combi = combinations_with_replacement(['p', 'y', 't', 'h', 'o', 'n'], 2) #Print the list of combinations for c in list(combi): print(c)
ผลลัพธ์
('p', 'p') ('p', 'y') ('p', 't') ('p', 'h') ('p', 'o') ('p', 'n') ('y', 'y') ('y', 't') ('y', 'h') ('y', 'o') ('y', 'n') ('t', 't') ('t', 'h') ('t', 'o') ('t', 'n') ('h', 'h') ('h', 'o') ('h', 'n') ('o', 'o') ('o', 'n') ('n', 'n')