View Full Version : سوال: چگونه عناصر یک آرایه را به صورت تصادفی جابجا کنیم ؟
arian19X
یک شنبه 01 دی 1392, 20:45 عصر
چطور با تابع های rand , srand و حلقه ها میتونیم اعضای یک ارایه را به صورت تصادفی جابجا کنم ؟
تشکر .
sr2m72
یک شنبه 01 دی 1392, 21:09 عصر
چطور با تابع های rand , srand و حلقه ها میتونیم اعضای یک ارایه را به صورت تصادفی جابجا کنم ؟
تشکر .
سلام
میتونید توی حلقه دوتا عدد تصادفی بین 0 تا تعداد خانه های آرایه تولید کنید بعد این دو عنصر رو با هم جابجا کنید.
موفق باشید//
rasoolll
سه شنبه 03 دی 1392, 18:04 عصر
سلام
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespcae std;
const int n = 1000;
int arr[n];
int main () {
srand(time(NULL));
int index1 = rand() % n;
int index2 = rand() % n;
swap(arr[index1], arr[index2]);
return 0;
}
NeoFighT
سه شنبه 03 دی 1392, 20:53 عصر
سلام دوست عزیز.
این سورس ابتدا یک آرایه به اسم mainarr میسازه و به صورت تصادفی مقدار دهیش میکنه و یک تابع دیگر به اسم swaparr با توجه به آرایه اصلی به صورت تصادفی مقدار دهی میشه.
#include <iostream>
#include <windows.h>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
/**********sakhte araye ha****************/
int mainarr[100];
int swaparr[100];
srand(time(NULL));
/******meQdar dehie araye asli************/
for(int i=0;i<=99;i++){
mainarr[i] = rand() % 200;
}
/******meQdar dehie araye swap shode******/
for(int k=0;k<=99;k++){
int _rnd_index = rand() % 100;
if(_rnd_index == k){
while(k != _rnd_index)_rnd_index = rand() % 100;
}
swaparr[k] = mainarr[_rnd_index];
}
/******namayeshe 2 arraye****************/
for(int b=0;b<=99;b++){
cout<<"MainArray[ " << b <<" ] = "<<mainarr[b]<<endl;
cout<<"SwapArray[ " << b <<" ] = "<<swaparr[b]<<endl<<endl;
}
return 0;
}
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.