ورود

View Full Version : سوال: تابع srand و rand



raaaaz
چهارشنبه 27 بهمن 1389, 19:23 عصر
بای تولید اعداد تصادفی بگونه ای که در هربار اجرا اعداد جدیدی تولید شودو تکراری نباشند چگونه باید از این دو تابع استفاده کرد؟

Salar Ashgi
چهارشنبه 27 بهمن 1389, 19:36 عصر
با اینکه تکراری هست ، ولی مثالی میزنم براتون :



#include <iostream>
#include <conio>
#include <stdlib>
int main(){
srand(time(0));
for(int i=1;i<=5;i++)
cout<<(1+rand()%5)<<" ";
cout<<endl;
getch();
}


توجه : همیشه قبل از ایجاد تاپیک ، جستجو کنید .

موفق باشید ./

raaaaz
چهارشنبه 27 بهمن 1389, 20:01 عصر
ممنون فقط اعداد منفی را نمیتوان تولید کرد؟

Salar Ashgi
چهارشنبه 27 بهمن 1389, 20:11 عصر
دوست عزیز ، کار که نشد نداره ، فقط یکم ابتکار میخواد ، مثلا من به شکل زیر نوشتم :



#include <iostream>
#include <conio>
#include <stdlib>
int main(){
srand(time(0));
int num;
for(int i=1;i<=5;i++){
num=(1+rand()%5);
if(i%2==0)
num*=-1;
cout<<num<<" ";}

cout<<endl;
getch();
}


خروجی :

66441

موفق باشید ./

raaaaz
چهارشنبه 27 بهمن 1389, 20:19 عصر
ممنون از این ابتکار!!! ولی منظورم این بود که منفی بودن هم تصادفی باشه نه اینکه با ترتیب خاصی منفیشون کنیم!

Salar Ashgi
چهارشنبه 27 بهمن 1389, 20:47 عصر
ولی منظورم این بود که منفی بودن هم تصادفی باشه نه اینکه با ترتیب خاصی منفیشون کنیم!
دوست عزیز ، مثل اینکه شما هی میخواین صورت مساله رو پاک کنین ، خوب حالا چه فرقی میکنه با چه روشی
اینکار صورت میگیره ؟! مهم خروجی برنامه هست که درست باشه ، این از این .
ثانیا اگه دقت کرده باشید ، خروجی عملگر باقیمانده نمیتواند منفی باشد ، بنابراین ما نیازمند روشی دیگر هستیم ./
با این حال ، گفتم که کمی ابتکار نیاز هست ، خوب اینم ترتیب منفی ها تصادفی :


#include <iostream>
#include <conio>
#include <stdlib>
int main(){
srand(time(0));
int num;
int k;
for(int i=1;i<=5;i++){
for(int i=1;i<=5;i++){
k=1+rand()%50;
num=(1+rand()%5);
if(k%2==0)
num*=-1;
cout<<num<<" ";}

cout<<endl;
cout<<"-----------------\n";
}
getch();
}


خروجی :
http://salarcpp.persiangig.com/new_folder_4/2/pic3.png