Java - naplneni pole čísly

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

Odpovědět
Uživatelský avatar
GarGy
Level 3
Level 3
Příspěvky: 520
Registrován: 21 bře 2009 11:13
Kontaktovat uživatele:

Java - naplneni pole čísly

Příspěvek od GarGy »

potřeobal bych poradit , nevím si rady jak přes random naplnit pole cisly , pricemz vzdy 2 budou stejna (pexeso)
Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7408
Registrován: 23 pro 2010 09:23

Re: Java - naplneni pole čísly

Příspěvek od faraon »

Je to sice v Céčku (protože Javu neumím), ale syntaxe vypadá dost podobně, takže bys ty smyčky měl bez problémů rozluštit:

Kód: Vybrat vše

/*** zamíchání karet pro pexeso ***/

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

/* zadává se pouze počet dvojic! */
#define POCET_DVOJIC 16
#define POCET_KARET POCET_DVOJIC*2

int main(void)
    {
    int balicek[POCET_KARET],karta,pocet,i,j;

    /*** míchání karet ***/
    srand(time(NULL));
    for (i=0;i<POCET_KARET;++i)
        {
        do {
           /* vylosování karty */
           karta=rand() % POCET_DVOJIC;
           /* kontrola kolikrát už ve zpracované části balíčku je */
           pocet=0;
           for (j=0;j<=i;++j)
               if (karta==balicek[j])
                  ++pocet;
           } while (pocet>=2);
           /* losování se opakuje dokud není počet menší než 2 */
        balicek[i]=karta;
        }

    /*** výpis balíčku ***/
    for (i=0;i<POCET_KARET;++i)
        {
        printf("%d\t%d\n",i,balicek[i]);
        }

    return 0;
    }


srand() - nastavení seedu aby sekvence nebyla pokaždé stejná
rand() - generování náhodného čísla
balíček - pořadí 0 až 31
karty - 0 až 15

To opakované losování karty není úplně optimální, protože ke konci balíčku může trvat dost dlouho. Ale protože těch karet je jen pár desítek, tak se to dá skousnout, horší by bylo kdyby jich byl milion... Můžeš zkusit vymyslet jak to udělat lépe ;-)
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)
Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: 20 srp 2008 14:02
Bydliště: Brno
Kontaktovat uživatele:

Re: Java - naplneni pole čísly

Příspěvek od CZechBoY »

v C# 4.0 bych dal to prohledavani pres Parallel.ForEach nebo jednoduse pres Array.IndexOf - ten si s tim uz nejak poradi ;-)
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
Odpovědět

Zpět na „Programování a tvorba webu“