PDA

View Full Version : سوال: الگوریتم انتخاب عدد تصادفی



Mr.Digital
پنج شنبه 20 فروردین 1388, 12:01 عصر
به نام خالق بی همتا

سلام به همه ی دوستان عزیز، به دنبال الگوریتمی هستم که از بین اعداد 1 تا 1000 یک عدد را به طور تصادفی انتخاب و چاپ کنه.
ممنون میشم راهنماییم کنید...

یا علی!

Sundown
پنج شنبه 20 فروردین 1388, 15:10 عصر
با سلام
البته توي همه زبان ها تابعي براي انتخاب عددي در يك Range وجود داره
اما شما بايد ابتدا يك عدد رو به عنوان ريشه انتخاب كنيد و چون اين عدد بايد هر بار غير تكراري باشه بايد جري انتخاب بشه كه هر بار متفاوت باشه ( مثلا از روي ساعت سيستم و يا تاريخ و ... )
و بعد از طريق يك فرمول به سليقه خودتون اون رو به يك عدد در رنج داده شده تبديل كنيد

Mr.Digital
پنج شنبه 20 فروردین 1388, 15:56 عصر
با سلام
البته توي همه زبان ها تابعي براي انتخاب عددي در يك Range وجود داره
اما شما بايد ابتدا يك عدد رو به عنوان ريشه انتخاب كنيد و چون اين عدد بايد هر بار غير تكراري باشه بايد جري انتخاب بشه كه هر بار متفاوت باشه ( مثلا از روي ساعت سيستم و يا تاريخ و ... )
و بعد از طريق يك فرمول به سليقه خودتون اون رو به يك عدد در رنج داده شده تبديل كنيد

ممنون از راهنماییتون دوست عزیز،
راستش من چیزی از الگوریتم نویسی بلد نیستم، محمد جان زحمت کشیدن کد C این سوال رو اینطور برام نوشتن:


#include<iostream>
#include<stdlib.h>
using namespace std;
int main(){
int n;
char test;
do {
n=rand();
if (n>0 && n<=1000) {
cout<<"\n***********\n";
cout<<"Num is "<<n;
cout<<"\n***********\n";
cout<<"Do you continue?[y/n]: ";
cin>>test;
system("cls");}
else
continue;
} while(test=='y');
system("pause");
return 0;
}

اگه ممکنه بیشتر راهنماییم کنید، با فرض وجود تابع rand() میخوام نوشته بشه. کلا اصول این کارو بلد نیستم. ممنون میشم راهنماییم کنید...
شاد و پیروز باشید.

kashaneh
جمعه 21 فروردین 1388, 12:47 عصر
دوست عزیز... کدی که دوست قبلی اینجا گزاشتن صحیحه اما خیلی راحت تر نیز می تونه باشه... به کد زیر دقت کنید...



#include <iostream.h>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
int x;
void main()
{
randomize();
clrscr();
x = rand() % 1000;
cout<<x;
}


در این کد ابتدا بوسیله تابع ()rand یک عدد تصادفی بین 1 تا 32768 ایجاد می شود و سپس باقیمانده تقسیم آن بر عدد 1000، تولید یک عدد بین 1 تا 1000 را برای شما انجام می دهد و در متغیر x ذخیره می کند... حال با تغییر عدد 1000 به هر عدد دلخواه می توانید محدوده دلخواه خود را تعیین کنید...

عبارت randomize در ابتدای کد باعث می شود تا شما در هر بار اجرای برنامه، به طور مطمئن به یک عدد غیر تکراری دسترسی پیدا کنید... موفق باشی

Mr.Digital
جمعه 21 فروردین 1388, 22:56 عصر
دوست عزیز... کدی که دوست قبلی اینجا گزاشتن صحیحه اما خیلی راحت تر نیز می تونه باشه... به کد زیر دقت کنید...



#include <iostream.h>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
int x;
void main()
{
randomize();
clrscr();
x = rand() % 1000;
cout<<x;
}


در این کد ابتدا بوسیله تابع ()rand یک عدد تصادفی بین 1 تا 32768 ایجاد می شود و سپس باقیمانده تقسیم آن بر عدد 1000، تولید یک عدد بین 1 تا 1000 را برای شما انجام می دهد و در متغیر x ذخیره می کند... حال با تغییر عدد 1000 به هر عدد دلخواه می توانید محدوده دلخواه خود را تعیین کنید...

عبارت randomize در ابتدای کد باعث می شود تا شما در هر بار اجرای برنامه، به طور مطمئن به یک عدد غیر تکراری دسترسی پیدا کنید... موفق باشی

خیلی ممنون، جدا عالی بود... :تشویق:
واقعا در برنامه نویسی برای رسیدن به هدف دلخواه هزاران راه وجود داره که کوتاه ترین و سریعترین و ساده ترین راه که درست هم باشه بهترین گزینست. از همگی متشکرم. ببینم میتونم از روش الگوریتم بنویسم... فکر کم باید با فرض وجود تابع راندومایز نوشته بشه...