Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2016
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.52 KB | None | 0 0
  1. /*
  2. * Feladat:
  3. * Irjon C programot az otoslotto nyeroszamainak veletlenszeru eloallitasara!
  4. * Ugyeljen, hogy ne ismetlodjenek a szamok!
  5. *
  6. * Megoldas:
  7. * Legeneralunk a "szamok" tombbe egy szamsort 1-90-ig (lehetseges nyeroszamok),
  8. * Ezekbol kihuzunk egy szamot, amit beirunk a "nyeroszamok" tombbe,
  9. * A kihuzott szamot a "szamok" tombben kicsereljuk az utolso elemmel,
  10. * Legkozelebb a "szamok" tomb elsotol utolso elotti elemeig valasztunk nyeroszamot,
  11. * A kihuzott szamot a "szamok" tombben kicsereljuk az utolso elotti elemmel,
  12. * Legkozelebb a "szamok" tomb elsotol utolso elotti elotti elemeig valasztunk nyeroszamot...
  13. * ...es igy tovabb.
  14. */
  15.  
  16. #include <stdio.h>
  17. #include <stdlib.h>
  18. #include <time.h>
  19.  
  20. int main() {
  21. int huzasok = 5;
  22. int nyeroszam;
  23. int i;
  24. int ismetles;
  25. int szamok[90];
  26. int index;
  27. int nyeroszamok[huzasok];
  28.  
  29. srand(time(NULL));
  30.  
  31. for (ismetles = 0; ismetles < 30000; ismetles++) {
  32. // kihuzhato szamok tombje (1-90)
  33. for (i = 0; i < 90; i++) {
  34. szamok[i] = i + 1;
  35. }
  36.  
  37. for (i = 0; i < huzasok; i++) {
  38. // random index valasztasa egyre kisebb halmazbol, egyenletes eloszlassal
  39. index = (int) (rand() / (1.0 + RAND_MAX) * (90 - i));
  40. nyeroszamok[i] = szamok[index];
  41.  
  42. // a kihuzott szam helyere az utolsot tesszuk
  43. szamok[index] = szamok[89 - i];
  44. }
  45.  
  46. for (i = 0; i < huzasok; i++) {
  47. printf("%d%s", nyeroszamok[i], i == huzasok - 1 ? "\n" : "\t");
  48. }
  49. }
  50.  
  51. return 0;
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement