-
-
Save hron84/8a277fa6827ae4802822a5b602dcc8da to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* Feladat: | |
* Irjon C programot az otoslotto nyeroszamainak veletlenszeru eloallitasara! | |
* Ugyeljen, hogy ne ismetlodjenek a szamok! | |
* | |
* Megoldas: | |
* Legeneralunk a "szamok" tombbe egy szamsort 1-90-ig (lehetseges nyeroszamok), | |
* Ezekbol kihuzunk egy szamot, amit beirunk a "nyeroszamok" tombbe, | |
* A kihuzott szamot a "szamok" tombben kicsereljuk az utolso elemmel, | |
* Legkozelebb a "szamok" tomb elsotol utolso elotti elemeig valasztunk nyeroszamot, | |
* A kihuzott szamot a "szamok" tombben kicsereljuk az utolso elotti elemmel, | |
* Legkozelebb a "szamok" tomb elsotol utolso elotti elotti elemeig valasztunk nyeroszamot... | |
* ...es igy tovabb. | |
*/ | |
#include <stdio.h> | |
#include <stdlib.h> | |
#include <time.h> | |
#define HUZASOK 5 | |
#define MAX_ISMETLES 30000 | |
int main() { | |
int nyeroszam; | |
int i; | |
int ismetles; | |
int szamok[90]; | |
int index; | |
int nyeroszamok[huzasok]; | |
srand(time(NULL)); | |
for (ismetles = 0; ismetles < MAX_ISMETLES; ismetles++) { | |
// kihuzhato szamok tombje (1-90) | |
for (i = 0; i < 90; i++) { | |
szamok[i] = i + 1; | |
} | |
for (i = 0; i < HUZASOK; i++) { | |
// random index valasztasa egyre kisebb halmazbol, egyenletes eloszlassal | |
index = (int) (rand() / (1.0 + RAND_MAX) * (90 - i)); | |
nyeroszamok[i] = szamok[index]; | |
// a kihuzott szam helyere az utolsot tesszuk | |
szamok[index] = szamok[89 - i]; | |
} | |
for (i = 0; i < huzasok; i++) { | |
printf("%d%s", nyeroszamok[i], i == huzasok - 1 ? "\n" : "\t"); | |
} | |
} | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment