Losowanie bez powtórzeń. Definiujemy ilość elementów z pośród, których będziemy wybierać dowolną ilość elementów.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
using namespace std;
 
int main(){
srand(time(NULL));
system("clear");
 
	int i,j,X=0,z;
	long int start,stop,czas;
		do{
	cout<<"Podaj ilosc elementow: ";
	cin>>z;
	}while((z<=0));
		do{
	cout<<"Podaj liczbe numerkow do wylosowania =< "<<z<<": ";
	cin>>X;
	}while((X<=0) || (X>z));
	start=time(NULL);
	int liczby[X];
	cout<<"Losowanie:"<<endl;
	for(i=1;i<=X;i++)
	{
		liczby[i]=((rand()% z)+1);
			cout<<"Wylosowano "<<i<<" : "<<liczby[i]<<endl;
		for(j=i-1;j>0;j--)
			{
			if(liczby[i] == liczby[j])
			{
				liczby[i]=((rand()% z)+1);
				cout<<"Wylosowano: "<<liczby[j]<<" - Powtorne losowanie: "<<liczby[i]<<endl;
				j=i;
			}
			}
	}		
 
	for(i=1;i<=X;i++)
 
		cout<<"  "<<liczby[i];
	stop=time(NULL);
	czas=stop-start;
	cout<<endl<<"Losowanie trwalo "<<czas<<" sekund.";
 
}
Pozostaw odpowiedź

(c) 2007 by Michał Terbert