บทนำ
คุณจะได้รับตัวสร้างจำนวนเต็มแบบสุ่มด้วยการใช้งานต่อไป
- การเรียกใช้ครั้งแรกส่งคืน 1 เสมอ
- การเรียกใช้ที่สองส่งคืนจำนวนเต็มแบบสุ่มระหว่าง 1 ถึง 2
- การเรียกใช้ที่สามส่งคืนจำนวนเต็มแบบสุ่มระหว่าง 1 ถึง 3
- การร้องขอ nth ส่งคืนเลขจำนวนเต็มแบบสุ่มระหว่าง 1 ถึง n โดยรวม
ขึ้นอยู่กับฟังก์ชั่นด้านบนเขียนตัวสร้างลูกเต๋าแบบสุ่มที่สุ่มสมบูรณ์โดยส่งคืนค่าระหว่าง 1 ถึง 6 (รวม) ด้วยความน่าจะเป็นที่เท่ากัน
กฎระเบียบ
- โปรแกรม / ฟังก์ชั่นของคุณควรส่งผลให้จำนวนเต็มแบบสุ่มระหว่าง 1 ถึง 6 รวมอยู่ในรูปแบบที่ใช้งานได้บางอย่างเช่นไปยังเอาต์พุตมาตรฐานหรือเป็นค่าส่งคืนฟังก์ชัน
- ตัวสร้างตัวเลขสุ่มจากน้อยไปหามากสามารถกำหนดเป็นฟังก์ชัน "ฟรี" ในโปรแกรมของคุณ (เช่นไม่นับรวมตัวอักษรของคุณ) หรือสคริปต์ / โปรแกรมแยกต่างหากที่ดำเนินการตามที่ต้องการสมมติว่าสถานะ (
n) เป็นแบบถาวร ระหว่างการโทร - สมมติว่าไม่มีมากกว่า 1000 ลูกเต๋าม้วนจะได้รับการร้องขอที่เคยมีในกรณีที่ใช้เพียงครั้งเดียวของโปรแกรมของคุณและเริ่มต้นกำเนิดจำนวนสุ่มสามารถตั้งค่าเพื่อ
1ที่ปลาย 1000nลูกเต๋าม้วนเพื่อหลีกเลี่ยงการล้นของ - โปรแกรมของคุณต้องไม่ใช้แหล่งที่มาของตัวเลขสุ่มอื่นใดยกเว้นตัวสร้างแบบสุ่มจากน้อยไปหามากที่กำหนดไว้ด้านบน แน่นอนคุณอาจขอตัวเลขสุ่มหลายตัวจากตัวสร้างตัวเลขสุ่มสำหรับผลลัพธ์การทอยลูกเต๋าเดี่ยว ๆ
- นี่คือรหัสกอล์ฟดังนั้นผู้ชนะคือคำตอบที่สั้นที่สุดหรือโหวตมากที่สุดในกรณีที่เสมอกัน ถ้าคุณสามารถสร้าง 1,000 ลูกเต๋าม้วนใช้น้อยกว่า 1,000 สร้างตัวเลขสุ่มให้ตัวเองโบนัสประสิทธิภาพ 10 จุด
ตัวอย่าง
./asc-rand
1 # random integer between 1 and 1
./asc-rand
1 # random integer between 1 and 2
./asc-rand
3 # random integer between 1 and 3
./asc-rand
4 # random integer between 1 and 4
# dice-gen generates random dice based on output of asc-rand program.
./dice-gen
3
./dice-gen
6
./dice-gen
5
./dice-gen
1
iterate(6):b=asc-rand(); print bผิดกฎหมายหรือใช้งานไม่ได้? ฉันอาจเข้าใจผิดกฎข้อที่สาม