PDA

View Full Version : تولید 500 عدد تصادفی بین صفر و یک



golfam
جمعه 17 اسفند 1386, 13:20 عصر
با سلام من میخوام یه برنامه بنویسم که 500 تا عدد تصادفی بین 0و1 تولید کنه الگوریتمش هم دارم اما نمیتونم برنامه شو (برنامه نویسیم خیلی ضعیفه)بنویسم الگوریتمش اینه:
1) یک عدد غیر قابل قسمت به 5 انتخاب میکنیم و اونو n در نظر میگیریم
2) یک عدد a=200t+ p یا a=200t-p(ضریب ثابت ) در نظر میگیریم (tیک عدد صحیح دلخواه و p یکی از اعداد (3و11و13و19و21و29و37و53و59و61و67و69و77 و83و91) است
3) اگر aبه( 10به توان d/2)نزدیک باشد از نظر تعدا آماری انتخاب خوبی است (dتعداد ارفام تصادفی است ) =>
4) dرقم سمت راست ir= a*n
در مرحله آخر
ir را تقسیم بر (10به توان d )کرده و مقدارش را در r میریزیم و در نهایت r=ir کرده و به مرحله 4 میرویم و......
اگه به من کمک کنید خیلی ممنون می شم

masoudnourizadeh
شنبه 25 اسفند 1386, 11:26 صبح
سلام . من برنامشو دارم (ولی تو VS2008و توسط #C نوشتم) ... اگه به دردت می خوره EMAIL بده برات بفرستم ...

whitehat
شنبه 25 اسفند 1386, 16:49 عصر
دوست عزیز در صورتی که مایل به کمک به دوستان هستید برنامه را با استفاده از تگ [ code ] در همین جا بگذارید

masoudnourizadeh
دوشنبه 27 اسفند 1386, 21:21 عصر
MyRandom.cs


namespace MyRandom
{
class MyRandom
{
private static int n;
private int a;
public MyRandom()
{
n = 835763;
// t = 5 & p = 3
// a = ( 200 * 5 ) - 3
a = 997;
}
public double NextRand()
{
int Ir;
Ir = (a * n) % 1000000;
n = Ir;
return Ir / (double)1000000;
}
}
}



MyRandomTest.cs

namespace MyRandom
{
public partial class MyRandomTest : Form
{
public MyRandomTest()
{
InitializeComponent();
}
private void MyRandomTest_Load(object sender, EventArgs e)
{
MyRandom myRand = new MyRandom();
for (int i = 0; i < 500; i++)
{
myRandArray[i] = myRand.NextRand();
}
}
}
}