Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * 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>
- int main() {
- int huzasok = 5;
- int nyeroszam;
- int i;
- int ismetles;
- int szamok[90];
- int index;
- int nyeroszamok[huzasok];
- srand(time(NULL));
- for (ismetles = 0; ismetles < 30000; 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;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement