Score:1

โปรแกรมทำนายเอาต์พุต 5 บิตจากโมดูลสุ่ม Mersenne Twister จากไพธอน

ธง cn

มีโปรแกรมทำนายโมดูลสุ่ม mersenne twister ใน python สำหรับเอาต์พุตจำนวนเต็ม 5 บิตหรือไม่ โดยมีเอาต์พุต 3994 เอาต์พุตติดต่อกันหรือไม่ โมดูลสุ่มไม่ได้ทำการ seed ดังนั้นฉันเดาว่ามันจะใช้เวลาของระบบเนื่องจากเป็นค่าของ seed เนื่องจากไม่มีการใช้ฟังก์ชั่น os.random! และมีการเพาะเพียงครั้งเดียว (สมมติฐาน) การอ้างสิทธิ์ของฉันดูถูกต้องหรือไม่! และคาดเดาได้จริงหรือ? ผิดถูกยังไงขออภัยด้วยนะครับ มือใหม่ครับ

fgrieu avatar
ng flag
อย่างน้อย 3994Ã5 บิตทำให้คุณได้รับบิตมากกว่าที่อยู่ในสถานะของ MersenneTwister มาตรฐานเล็กน้อย ดังนั้นฉันจึงไม่เห็นความเป็นไปไม่ได้ทางทฤษฎีของข้อมูล การขอคำแนะนำเกี่ยวกับโปรแกรมที่มีอยู่ (เช่นใน GitHub หรือบางอย่าง) นั้นนอกหัวข้อ แต่การพูดคุยเกี่ยวกับเทคนิคที่เราจะใช้ดูเหมือนจะโอเคสำหรับฉัน แม้ว่า MersenneTwister จะไม่ได้มีไว้สำหรับใช้ในแอปพลิเคชันเข้ารหัสก็ตาม หากคำถามให้คำจำกัดความที่เป็นทางการเกี่ยวกับตัวแปรของ MersenneTwister ที่กำหนดเป้าหมาย รวมถึงวิธีรับเอาต์พุต 5 บิต นั่นจะช่วยได้
Mohammed Siddique avatar
cn flag
@fgrieu สมมติว่ามันเป็นตัวแปร 32 บิตและถ้าเอาต์พุต 3994 นั้นไม่ต่อเนื่องแม้ว่าฉันจะพูดถึงคำถามของฉันติดต่อกันก็ตาม หากมีผลผลิตที่ขาดหายไปและเราไม่รู้ว่าขาดหายไปจริงหรือไม่ แต่เรามี 3994 เมล็ด ยังสามารถปรับเมล็ดได้หรือไม่
Mohammed Siddique avatar
cn flag
@fgrieu นอกจากนี้ฉันลืมพูดถึงสิ่งนี้ในคำถาม ... ตั้งแต่ 3993.6*5 ได้รับ 19968 ฉันไม่สามารถเขียนโปรแกรมสำหรับค่าทศนิยมได้ดังนั้นการกล่าวถึง n เนื่องจาก 3994 ทำให้เกิดข้อบกพร่องในตัวทำนาย
fgrieu avatar
ng flag
ผลลัพธ์ที่ไม่ต่อเนื่องกันจะทำให้ปัญหายากขึ้น แต่ฉันไม่เห็นเหตุผลว่าทำไมมันถึงทำให้เป็นไปไม่ได้ เว้นแต่ผลลัพธ์จะถูกระบุตำแหน่งโดยเจตนาเพื่อทำให้งานนั้นเป็นไปไม่ได้ (เช่น $2^{20000}-2^{63}$ คำ ห่างกัน). อีกครั้ง เพื่อแก้ปัญหานั้น เราจำเป็นต้องทราบวิธีการดึงเอาต์พุต 5 บิตออกจากเอาต์พุตของ Mersenne Twister และรูปแบบของ Mersenne Twister ที่ใช้โดยเฉพาะ การทำวิศวกรรมย้อนกลับ Python นั้นค่อนข้างนอกหัวข้อ การใช้ทศนิยมเพื่อนับสิ่งต่าง ๆ ไม่ค่อยเป็นความคิดที่ดี ลืมมันไปซะ หากคุณลองบางอย่าง อาจอธิบายว่าอะไร (ในคำถาม)
Mohammed Siddique avatar
cn flag
เอาต์พุต 5 บิตถูกแยกออกจาก mersenne twister โดยใช้ฟังก์ชัน python randint(0, 31) และไม่ได้ใช้ systemrandom นอกจากนี้ค่า seed จะถูกเริ่มต้นเพียงครั้งเดียว โปรแกรมที่ฉันพยายามทำวิศวกรรมย้อนกลับยังไม่สมบูรณ์ ขออภัยฉันไม่รู้วิศวกรรมย้อนกลับ python นอกหัวข้อ ฉันยังใหม่กับ @fgrieu นี้

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา