งานของคุณคือสร้างตัวสร้างหมายเลขสุ่มฮาร์ดแวร์กับฮาร์ดแวร์ใด ๆ ก็ตามที่คุณมีอยู่
ท้าทาย
เขียนโปรแกรมด้วยคุณสมบัติต่อไปนี้:
- มันพิมพ์อย่างใดอย่างหนึ่ง
0
หรือ1
(และไม่มีอะไรอื่น) - เอาท์พุทขึ้นอยู่กับกระบวนการทางกายภาพและไม่เพียง แต่สถานะภายในของคอมพิวเตอร์
- ไม่มีความสัมพันธ์ระหว่างเอาต์พุตของการรันที่ตามมา (แยกจากกันหนึ่งนาที)
- ผลลัพธ์ไม่สามารถคาดการณ์ได้ด้วยความพยายามที่สมจริง
- ความน่าจะเป็นของเอาต์พุต
0
อยู่ระหว่าง 0.2 ถึง 0.8 - มันทำงานในเวลาน้อยกว่าหนึ่งนาทีด้วยความน่าจะเป็นที่สูงพอสมควร
คุณต้องอธิบายสาเหตุที่โปรแกรมของคุณมีคุณสมบัติเหล่านี้หากไม่ชัดเจน
คำชี้แจงและข้อ จำกัด
ต่อไปนี้อาจดูเหมือนข้อ จำกัด มากมายสำหรับการประกวดความนิยม แต่ในท้ายที่สุดมันทั้งหมดเพื่อให้แน่ใจว่าโปรแกรมยังคงอยู่ภายในจิตวิญญาณของคำถามค่อนข้างทำงานและเพื่อหลีกเลี่ยงการแก้ปัญหาที่เป็นที่นิยมเนื่องจากเป็น overkill ทั้งหมด แต่เป็นที่สุด ค่อนข้างน่าเบื่อ
- เวลาระบบไม่นับเป็นกระบวนการทางกายภาพ
- คุณสามารถใช้ฮาร์ดแวร์ระดับผู้บริโภคที่คุณต้องการตั้งแต่ไดรฟ์ฟล็อปปี้ดิสก์ขนาด 8 นิ้วไปจนถึงตัวปล่อยจรวด USBไปยังหูฟัง - เว้นแต่ว่าจะมีไว้สำหรับการสร้างหมายเลขสุ่ม ชิ้นส่วนของฮาร์ดแวร์เป็นเกรดสำหรับผู้บริโภคหากเป็นผลิตภัณฑ์ที่ผลิตเป็นจำนวนมากและมีค่าใช้จ่ายน้อยกว่า 1,000 $ / € / £ดังนั้นคุณจึงไม่สามารถใช้กล้องโทรทรรศน์วิทยุ CERN, MRIs หรือเครื่องตรวจจับอนุภาคในตัว
- คุณสามารถตั้งสมมติฐานพื้นฐานที่สุดได้เฉพาะกับสถานะและการจัดแนวของฮาร์ดแวร์เช่นการเปิดสวิตช์ (หากมีสวิตช์เปิดปิด) และติดตั้งและใช้งานได้อย่างเหมาะสม ตัวอย่างเช่นคุณสามารถสมมติให้ไดรฟ์ซีดีมีความสามารถในการอ่านดิสก์โดยทั่วไปและไม่ให้ติดขัด แต่คุณไม่สามารถสันนิษฐานได้ว่าจะเปิดหรือปิดหรือมีดิสก์อยู่ ในตัวอย่างอื่นคุณไม่สามารถถือว่าฮาร์ดแวร์สองชิ้นถูกจัดตำแหน่งเพื่อให้มีการโต้ตอบพิเศษ แต่คุณสามารถสันนิษฐานได้ว่าอยู่ในห้องเดียวกัน
- คุณอาจปล่อยให้ฮาร์ดแวร์อยู่ในสถานะที่คุณต้องการยกเว้นว่าคุณทำผิดพลาด
- คุณสามารถและต้องถือว่าฮาร์ดแวร์อยู่ในสภาพแวดล้อมที่เป็นธรรมชาติ แต่ไม่มีอะไรเพิ่มเติม ตัวอย่างเช่นคุณสามารถสันนิษฐานได้ว่าฮาร์ดแวร์ไม่ได้ถูกจัดวางในถังของเหลวฮีเลียมหรือในห้องกันเสียงและกันแสงหรือในพื้นที่ อย่างไรก็ตามคุณไม่สามารถคาดเดาแหล่งที่มาของเสียงและแสงใด ๆ ได้ยกเว้นแหล่งที่จะหลีกเลี่ยงได้ด้วยความพยายามที่รุนแรง
- โปรแกรมของคุณต้องทำงานบนคอมพิวเตอร์เดสก์ท็อปมาตรฐานที่มีระบบปฏิบัติการที่ไม่มีความลึกลับที่คุณเลือก คุณอาจใช้ซอฟต์แวร์ใด ๆ ที่ไม่ได้ออกแบบมาโดยเฉพาะสำหรับการสร้างหมายเลขสุ่ม
- คุณไม่สามารถเข้าอินเทอร์เน็ตได้
- คุณไม่สามารถคิดว่ามนุษย์ไม่อยู่หรือไม่อยู่ แต่คุณสามารถคิดได้ว่าไม่มีใครรบกวนโปรแกรมของคุณเช่นโดยการหยุดแฟนด้วยตนเองหรือรันโปรแกรมที่ไม่ทำอะไรเลยนอกจากปิดไมโครโฟนบ่อยที่สุด
- คุณสามารถตั้งสมมุติฐานพื้นฐานที่สุดเกี่ยวกับการตั้งค่าซอฟต์แวร์ได้เท่านั้น ตัวอย่างเช่นคุณสามารถสมมติว่าจะติดตั้งและเปิดใช้งานไดรฟ์เวอร์ แต่คุณต้องเตรียมพร้อมสำหรับการปิดเสียง
- คุณสามารถออกจากการตั้งค่าซอฟต์แวร์ในสถานะที่คุณต้องการ
โบนัส
รางวัลพิเศษถูกมอบให้กับทางออกที่สั้นโดยเฉพาะ นี่ค่อนข้างตามจำนวนคำสั่งและคล้ายกันมากกว่าโดยตัวอักษร ผู้ชนะคือ (ผูกตามเกณฑ์ของฉัน):
ฉันทำได้เพียงคำตอบเดียวและคำตอบของ Tejas Kale ชนะมาก