3
<random> สร้างหมายเลขเดียวกันใน Linux แต่ไม่ใช่ใน Windows
รหัสด้านล่างนี้มีไว้เพื่อสร้างรายการตัวเลขสุ่มหลอกห้าหมายเลขในช่วงเวลา [1,100] ฉันเมล็ดdefault_random_engineด้วยtime(0)ซึ่งจะส่งกลับเวลาของระบบในเวลายูนิกซ์ เมื่อฉันรวบรวมและเรียกใช้โปรแกรมนี้บน Windows 7 โดยใช้ Microsoft Visual Studio 2013 มันทำงานได้ตามที่คาดไว้ (ดูด้านล่าง) อย่างไรก็ตามเมื่อฉันทำใน Arch Linux ด้วยคอมไพเลอร์ g ++ มันทำงานแปลก ๆ ใน Linux จะมีการสร้างตัวเลข 5 ตัวในแต่ละครั้ง ตัวเลข 4 ตัวสุดท้ายจะแตกต่างกันในแต่ละการดำเนินการ (ซึ่งมักจะเป็นเช่นนั้น) แต่ตัวเลขแรกจะยังคงเหมือนเดิม ตัวอย่างผลลัพธ์จากการดำเนินการ 5 ครั้งบน Windows และ Linux: | Windows: | Linux: --------------------------------------- Run 1 | 54,01,91,73,68 | 25,38,40,42,21 Run 2 …