Skip to content

Instantly share code, notes, and snippets.

@hron84 hron84/lotto.c forked from fejesjoco/lotto.c
Last active Oct 24, 2016

Embed
What would you like to do?
/*
* 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
You can’t perform that action at this time.