รหัสเทียม ของ ตัวสร้างเลขสุ่มเทียม

Input: ตัวเลข Output: ยกกำลังสอง Input ที่นำตัวเลขตำแหน่งกลางออก

  int main () { int in; int tmp =in*in; int tmp2=tmp; //หาจำนวนหลัก int length=0; while (tmp2>0) { length++; tmp2/=10; } int tmp3=tmp/pow (10,length/2) ; //ดึงส่วนข้างหน้าหลักกลางออกมา int tmp4= (length%2==0) ?tmp-tmp3* pow (10,length/2) +1: tmp-tmp3* pow (10,length/2) ;//ดึงส่วนข้างหลังหลักกลางออกมา int out = tmp3* pow (10,length/2) +tmp4; ที่ นำหลักตรงกลางออกแล้ว return out; }

ปัญหาของ middle-square method คือท้ายที่สุดแล้ว จะมีการซ้ำกับลำดับสุ่มซึ่งสร้างขึ้นก่อนหน้า บางอันจะทำให้เกิดการวนซ้ำเร็วมากเช่น 00000 ซึ่งถ้านำไปทดลองทำตามวิธีนี้จะพบว่า ตัวเลขสุ่มที่ได้ทุกครั้งคือ 0000000000 ซึ่งฟอน นอยมันน์ ก็ตระหนักถึงปัญหาดังกล่าวเช่นกัน แต่เขาคิดว่ามันเพียงพอแล้วกับวัตถุประสงค์ในการใช้งานของเขา เขาได้ใช้กลวิธีการทางคณิตศาสตร์บางอย่างในการคาดเดาล่วงหน้าก่อนจะใส่เป็น ตัวตั้งต้น ซึ่งจะสามารถซ่อนข้อผิดพลาดดังกล่าวไว้ได้ ต่อมา middle-square method ถูกแทนที่จากวิธีการอื่นซึ่งซับซ้อนและมีความละเอียดอ่อนมากกว่าซึ่งลำดับสุ่มเสมือนที่ได้มีความใกล้เคียงลำดับสุ่มแท้จริงมากกว่า

ใกล้เคียง

ตัวสร้างเลขสุ่มเทียม ตัวสร้างความสอดคล้องแบบเชิงเส้น ตัวสร้างเลขสุ่มเทียมแบบบลัมบลัมชับ ตัวระบุวัตถุดิจิทัล ตัวรับความรู้สึกเจ็บปวด ตัวกระตุ้น ตัวรับแรงกล ตัวเรียงกระแส ตัวรับรู้สารเคมี ตัวกระตุ้นให้ทำงาน