IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

Testovanie algoritmu pre podvod s ruletou

Každý človek, ktorý sa pohybuje na internete, určite narazil na stránku, ktorá sa ho bude snažiť zlákať k stávkovanie v rulete a ukazovať mu šancu ako sa ľahko stať milionárom. Na túto stránku som narazil aj ja. Rozhodol som sa, že bez peňazí a riziká vyskúšam ako tento manuál funguje v praxi.

Spustiť si online ruletu a skúšať mi ale prišlo veľmi časovo náročné a preto som sa rozhodol, že si celý test naprogramuje.

Pre programovanie som sa rozhodol využiť programovací jazyk Java. Na výstup bude stačiť konzoly. Celý program bude značne zjednodušený a bude vedieť iba tento jeden experiment. Obsahuje ale určitú štruktúru a tak by nemal byť problém ho rozšíriť a použiť ďalej.

Trieda Ruleta, ktorá reprezentuje virtuálne ruletu, vyzerá takto.

public class Ruleta {
    private int padleCislo;
    private Random nahoda;

    public Ruleta(){
        nahoda = new Random();
    }

    public void zatoc(){
        this.padleCislo = nahoda.nextInt(37);
    }
    public boolean vsadNaBarvu(String barva){
        if(barva.equals(vratBarvu())){
            return true;
        }
        else{
            return false;
        }
    }
    private String vratBarvu(){
        if(padleCislo <= 18 && padleCislo != 0){
            return "cervena";
        }
        else{
            return "cerna";
        }

    }
}

Ruleta funguje nasledovne. Vytvoríme si jej inštanciu. Pre zatočenie ruletou zavoláme metódu Zátoke (). Vygeneruje sa nám náhodne číslo v intervale <0; 36>, reprezentujúci jednu položku rulety. Metóda vsadNaBarvu () vracia true v prípade, že sme stavili na správnu farbu a false v prípade, že sme sa mýlili. Pre zjednodušenie som si určil, že čísla z intervalu <1; 18> budú červená a čísla z intervalu <19; 36> budú čierna. Nezodpovedá to síce pravidlám rulety, ale pravdepodobnosť zostáva rovnaká.

Trieda hra reprezentuje našu hru. Obsahuje inštanciu rulety a naše herné peniaze.

public class Hra {

    private int penize;
    private Ruleta ruleta;
    public Hra(){
        this.penize = 1000;
        this.ruleta = new Ruleta();

    }

    public boolean vsadNaBarvu(int vsazenaCastka, String barva){
            if(this.penize < vsazenaCastka){
                return true;
            }
            this.penize -= vsazenaCastka;
            ruleta.zatoc();
            if(ruleta.vsadNaBarvu(barva)){
                this.penize += (vsazenaCastka*2);
                return true;
            }
            else{
                return false;
            }

    }

    public int vratPenize(){
        return this.penize;
    }

}

Trieda obsahuje metódy vsadNaBarvu () a vratPenize ().

Metóda vsadNaBarvu () slúži na vsadenie sumy. Odovzdávame sumu, ktorú hodláme staviť a farbu. Metóda vracia true v prípade, že sme vyhrali a false v prípade, že sme prehrali. Metóda vracia true aj v prípade, že nemožno toľko peňazí staviť. Vysvetlím neskôr.

Metóda vratPenize () vracia naše imanie.

A ideme do finále. Hlavná trieda nášho projektu, Ruletatest, bude vykonávať samotný test.

public class RuletaTest {
    Hra hra;

    public RuletaTest(){
        hra = new Hra();

        int vsazenaCastka = 10;

        while(hra.vratPenize() >= 10){
            System.out.println("Vsadil jste "+vsazenaCastka);
            if(hra.vsadNaBarvu(vsazenaCastka, "cervena")){
                vsazenaCastka = 10;
            }
            else{
                vsazenaCastka = vsazenaCastka*2;
            }
            System.out.println("A teď máte "+hra.vratPenize());
        }


    }
    public static void main(String[] args) {
        new RuletaTest();
    }
}

Celý test funguje presne podľa návodu, ktorý môžete nájsť napríklad na Google po zadaní kľúčových slov "Ako vyhrať v rulete". Ak sa vám nechce hľadať, tak ho nájdete tu. Návod spočíva v tom, že si na začiatok zvolíme nejakú čiastku, ktorú budeme sadiť. Napríklad 100 Sk. Keď prehráme, tak čiastku zdvojnásobíme a sme na 200Kč. Keď prehráme, tak sumu zas zdvojnásobíme a sme na 400Kč. A hľa! Vyhrali sme. Sme v pluse.

Keď sa budeme striktne držať návodu, budeme postupovať asi takto. Na začiatku si zvolíme vsadenú čiastku. V našom prípade to bude 10 jednotiek. V algoritmu je vsadená čiastka v premennej vsazenaCastka. A teraz budeme vykonávať stále dokola a dokola sádzacie cyklus. Budeme sadiť tak dlho, kým budeme mať aspoň tých 10 jednotiek, ktoré sú potrebné k minimálnej stávke. Napíšeme si teda cyklus, ktorý bude vyzerať takto.

while(hra.vratPenize() >= 10){

            System.out.println("Vsadil jste "+vsazenaCastka);
            if(hra.vsadNaBarvu(vsazenaCastka, "cervena")){
                vsazenaCastka = 10;
            }
            else{
                vsazenaCastka = vsazenaCastka*2;
            }
            System.out.println("A teď máte "+hra.vratPenize());
}

Cyklus najskôr vypíše koľko sadíme a potom túto sumu vsadí. Podľa návodu sadíme stále dookola na rovnakú farbu, pretože jedna farba nemôže padať do nekonečna. V prípade výhry musíme staviť znovu základnú čiastku. V prípade prehry vsadíme presne dvojnásobok vsadenej sumy. Takto postupujeme stále dokola. Môj algoritmus rozširuje pôvodné v tom, že ak už nemôžeme staviť toľko peňazí, tak sa znovu vrátime k východiskovej sume a pokúsime sa začať znovu.

Dosť bolo programovanie, ideme z toho dostať nejaký záver. Keď necháte prebehnúť tento algoritmus, zistíte, že sa skôr alebo neskôr dostanete na nulu. Prečo to tak je? Pretože pravdepodobnosť jednoducho pracuje. Z krátkodobého hľadiska sa vám bude veľmi dariť a peniaze budú pomaly pribúdať. Skôr alebo neskôr ale nastane situácia, keď nesprávna farba jednoducho padne viackrát za sebou a vy sa neustálym zdvojnásobovaním vsadenej sumy dostanete na tak vysokú čiastku, že ju jednoducho nemôžete staviť.

Algoritmus pre podvod s ruletou - Ostatné algoritmy

Došli sme teda k záveru, že tento návod je podvod a rozhodne ho nikdy neskúšajte v praxi! Schválne si skúste prejsť výsledný výpis algoritmu. Uvidíte že suma sa bude sľubne dvíhať, a vy si budete myslieť, že skrátka nemôžete prehrať. Ako som ale napísal vyššie, pravdepodobnosť začne fungovať a šanca na prehru rastie úmerne s počtom stávok.


 

Stiahnuť

Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami

Stiahnuté 79x (18.52 kB)
Aplikácia je vrátane zdrojových kódov

 

Všetky články v sekcii
Ostatné algoritmy
Článok pre vás napísal martinkobelka
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
Aktivity