Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

สร้างตัวเลขสุ่มหลอกใน Python


แอปพลิเคชันคอมพิวเตอร์จำนวนมากต้องการตัวเลขสุ่มเพื่อสร้าง อย่างไรก็ตามไม่มีใครสร้างตัวเลขสุ่มอย่างแท้จริง Python เช่นเดียวกับเทคนิคการเขียนโปรแกรมอื่นๆ ใช้ตัวสร้างสุ่มหลอก การสร้างแบบสุ่มของ Python นั้นใช้อัลกอริทึม Mersenne Twister ที่สร้างโฟลตความแม่นยำ 53 บิต เทคนิคนี้รวดเร็วและปลอดภัยต่อเธรดแต่ไม่เหมาะกับวัตถุประสงค์ในการเข้ารหัส

ไลบรารีมาตรฐานของ Python มีโมดูลสุ่มซึ่งกำหนดฟังก์ชันต่างๆ สำหรับการจัดการการสุ่ม

random.seed() − ฟังก์ชันนี้จะเริ่มต้นตัวสร้างตัวเลขสุ่ม เมื่อนำเข้าโมดูลแบบสุ่ม เครื่องกำเนิดไฟฟ้าจะเริ่มต้นโดยใช้เวลาของระบบ หากต้องการรีซีฟเครื่องกำเนิดไฟฟ้า ให้ใช้อ็อบเจ็กต์ int, str, byte หรือ bytearray

random.getstate() ฟังก์ชันนี้ร่วมกับฟังก์ชัน setstate() ช่วยในการทำซ้ำข้อมูลสุ่มซ้ำแล้วซ้ำอีก ฟังก์ชัน getstate() จะคืนค่าสถานะภายในของเครื่องกำเนิดตัวเลขสุ่ม

random.setstate() − ฟังก์ชันนี้จะคืนสถานะภายในของเครื่องกำเนิดไฟฟ้า

ฟังก์ชันต่อไปนี้จัดการการสร้างเลขจำนวนเต็มแบบสุ่ม -

random.randrange() − ฟังก์ชันนี้สร้างจำนวนเต็มสุ่มระหว่างช่วงที่กำหนด ใช้พารามิเตอร์ได้สามตัว

random.randrange(start, stop, step)

พารามิเตอร์เริ่มต้นและขั้นตอนเป็นทางเลือก ค่าเริ่มต้นคือ 0 และ 1 ตามลำดับ ขั้นตอนกำหนดช่วงเวลาระหว่างตัวเลขที่ต่อเนื่องกัน

>>> random.randrange(10)
5
>>> random.randrange(10, 20)
17
>>> random.randrange(100, 200, 2)
188

(หมายเหตุ:โปรดทราบว่าผลลัพธ์ของข้อความข้างต้น และข้อความที่เหลือในบทความนี้อาจไม่เหมือนกับที่ถูกสร้างขึ้นแบบสุ่ม)

random.randint() − ฟังก์ชันนี้สร้างจำนวนเต็มสุ่มระหว่างสองพารามิเตอร์ คล้ายกับฟังก์ชัน randrange() ที่ไม่มีพารามิเตอร์ขั้นตอน จำเป็นต้องมีพารามิเตอร์เริ่มต้น

>>> random.randint(1,10)
6
>>> random.randint(100, 200)
134

ฟังก์ชันต่อไปนี้จัดการกับตัวเลขสุ่มจุดลอยตัว

random.random() - ฟังก์ชันนี้สุ่มสร้างจำนวนจุดลอยตัวระหว่าง 0.0 ถึง 1.0

>>> random.random()
0.668544544081956

random.uniform() − ฟังก์ชันนี้จะคืนค่าสุ่มตัวเลขทศนิยมระหว่างสองพารามิเตอร์

>>> random.uniform(0.5,1.5)
1.2760281470664903
>>> random.uniform(1,10)
7.336985794193224
>>> random.uniform(10,5)
7.817794757786727

ฟังก์ชันต่อไปนี้ทำหน้าที่ตามวัตถุลำดับ ได้แก่ สตริง รายการ หรือทูเพิล

random.choice() − ฟังก์ชันนี้จะเลือกองค์ประกอบแบบสุ่มจากลำดับ หากลำดับว่างเปล่า IndexError จะถูกส่งออกไป

>>> random.choice("Tutorialspoint")
'o'
>>> random.choice(range(10))
2
>>> random.choice([15,31,6,29,55, 5])
55
>>> random.choice((15,31,6,29,25, 55))
15

random.choices() − ฟังก์ชันนี้จะเลือกองค์ประกอบหลายรายการจากรายการในลักษณะสุ่ม พารามิเตอร์ตัวแรกของฟังก์ชันนี้คือลำดับ และพารามิเตอร์ที่สองคือจำนวนตัวเลือกที่จะทำ

>>> name = "TutorialsPoint"
>>> random.choices(name, k = 2)
['T', 'o']

random.shuffle() − ฟังก์ชันนี้จะจัดลำดับองค์ประกอบใหม่ตามลำดับที่ไม่แน่นอนและจัดวางองค์ประกอบแบบสุ่ม

>>> num = [10,20,30,40,50]
>>> random.shuffle(num)
>>> num
[50, 20, 40, 30, 10]

random.sample() − ฟังก์ชันนี้ทำงานกับลำดับที่ไม่เปลี่ยนรูป ส่งคืนรายการสุ่มเลือกจากลำดับโดยปล่อยให้ไม่บุบสลาย

>>> name = "TutorialsPoint"
>>> nm = random.sample(name, k = 2)
>>> name, nm
('TutorialsPoint', ['i', 'a'])