ورود

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;
}