PDA

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



aliparc
پنج شنبه 04 تیر 1388, 01:38 صبح
سلام دوستان
من دارم یه برنامه مینویسم که یه آرایه دو بعدی هستش که تو هر سطرش 5 تا عدد قرار میگیره

چجوری میتونم اعداد تصادفی انتخاب کنم که تو هر سطرش از 1 تا 5 انتخاب بشه و تکرار نداشته باشه
مثلا تو هر سطر 2تا عدد شبیه هم انتخاب نکنه!
کمکم کنید! :افسرده::افسرده::افسرده:
help meeeeeeeeeeeeee

tdkhakpur
پنج شنبه 04 تیر 1388, 13:47 عصر
سلام
کد زیر رو استفاده کن


int array[5]
int c=0, k, i;
while(c<5 )
{
k= random(5);
for( i=0; i<c; i++)
if( array[i] == k ) break;
if( i==c ) array[c++] = k;
}

البته این کد خیلی ساده هست.

star_n
شنبه 06 تیر 1388, 01:49 صبح
به جز تابع random تابع دیگه ای واسه این کار هست؟
آخه random خوب عمل نمی کنه

tdkhakpur
شنبه 06 تیر 1388, 02:04 صبح
آخه random خوب عمل نمی کنه
سلام
یعنی چی خوب عمل نمیکنه.

PC2st
شنبه 06 تیر 1388, 09:53 صبح
قبل از صدا زدن تابع rand (یا random)، از تابع srand برای ارزش دهی اولیه و از تابع time برای گرفتن زمان فعلی سیستم استفاده کنید تا نتایج اعداد تصادفی تولید شده، در هر بار اجرای برنامه متفاوت باشد. بعنوان مثال برای چاپ یک عدد تصادفی بین ۱ تا ۹:

std::srand (time (0)); // for difference outputs at every program start
std::cout << 1 + std::rand () % 9 << std::endl;