NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lekce 1 - Testování algoritmu pro podvod s ruletou

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
Honza
Člen
Avatar
Honza:21.5.2015 14:43

On tento systém teoreticky funguje, ale abys měl pravděpodobnost blížící se 100% že budeš minimálně na nule, musejí být splněny dvě podmínky, přičemž druhá z nich nebude splněna nikdy.

  1. nesmí být omezena horní hranice sázky
  2. musíš disponovat neomezenými prostředky pro vklad

Pokud budeš moct donekonečna zvyšovat sázky, dříve nebo později padne barva na kterou sázíš. To se ale v praxi samozřejmě nikdy nestane, nemluvě o tom že kdyby jsi měl tolik prostředků, neměl bys důvod je cpát do rulety :)
Problém je prostě v tom, že s každou prohranou sázkou staršně strmě roste tvůj vklad. Je to stejný jako ten příběh se šachovnicí a zrnky rýže.
Nemluvě o tom že v online kasínech může být implementován mechanismus který "hraje" proti tobě, takže ti může šanci značně snížit nebo i velkou výhru znemožnit.

Další věcí je, že při ruletě je pravděpodobnost "na tvé straně" pouze při krátkodobém hraní. Čím déle hraješ, tím větší výhoda pro kasíno. Provozovatelé online kasín to ale samozřejmě vědí, takže mají téměř vždy v podmínkách, že svůj vklad musíš několikrát protočit aby ti ho vyplatili. Čímž samozřejmě docílí toho že musíš hrát déle a pak už není co vyplácet.

Editováno 21.5.2015 14:47
Odpovědět
21.5.2015 14:43
Snadnou cestou se daleko nedostanete, je tam velká tlačenice...
Avatar
Petr Šťastný
Tvůrce
Avatar
Petr Šťastný:27.4.2016 18:45

Tak to nevím... Naprogramoval jsem si na to vlastní program a s 1000 hned prohraju, ale s 10 000 jsem vydržel, až mi spadnul program :-)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace RulTEST
{
    class Ruleta
    {
        public int penize;
        private int zaklad = 10;
        private int sazka;
        Random rnd = new Random();
        private int kolo;

        public Ruleta(int penize)
        {
            this.penize = penize;
            sazka = zaklad;
        }

        public void Toc()
        {
            int Hod = rnd.Next(37);
            if(Hod <= 18)
            {
                penize -= sazka;
                Console.WriteLine("[KOLO {0}: PROHRA] Vsadil jsi {1} a ted mas {2} penez",kolo, sazka, penize);
                sazka = sazka * 2;
                if (sazka > penize)
                    sazka = penize;
                if (penize <= 0)
                {
                    Console.WriteLine("KONEC HRY, PROHRAL JSI");
                    Console.ReadKey();
                }
                else
                {
                    kolo++;
                    Toc();
                }
            }else
            {
                penize += sazka;
                Console.WriteLine("[KOLO {0}: VYHRA] Vsadil jsi {1} a ted mas {2} penez",kolo, sazka, penize);
                sazka = zaklad;
                kolo++;
                Toc();
            }


        }
    }
}
Editováno 27.4.2016 18:48
 
Odpovědět
27.4.2016 18:45
Avatar
Petr Šťastný
Tvůrce
Avatar
Odpovídá na Petr Šťastný
Petr Šťastný:27.4.2016 20:40

Edit: Byla tam chyba, odstranil jsem ji a upravil zdrojak nahore. Omlouvam se za spam ☺

 
Odpovědět
27.4.2016 20:40
Avatar
coells
Tvůrce
Avatar
Odpovídá na Petr Šťastný
coells:27.4.2016 23:09

Místo kódu Toc() si dej return true, místo Console.ReadKey() dej return false a volej metodu přes while (Toc()) ;
Tím se vyhneš přetečení zásobníku.

No a pak si vyzkoušej několik spuštění, ať vidíš, jak rychle prohraješ.
Při vyšší částce je jen nižší pravděpodobnost prohry, ale ta časem roste.

 
Odpovědět
27.4.2016 23:09
Avatar
Šimon Rataj
Člen
Avatar
Šimon Rataj:25.12.2017 18:50

Nemělo by tam být spíše this.nahoda místo nahoda?

 
Odpovědět
25.12.2017 18:50
Avatar
David Jančík
Vlastník
Avatar
Odpovídá na Šimon Rataj
David Jančík:25.12.2017 19:43

V C# je to jedno. Automaticky si to najde, prvně hledá proměnnou v metodě a pokud tam žádná není, tak se podívá do třídy. Takže dokud nebudeš mít stejnojmennou proměnnou i v metodě, ve které ji voláš, tak je to ok. Je však dobrým zvykem slůvko this uvádět pro přehlednost kódu :)

Odpovědět
25.12.2017 19:43
Zapomeň, že je to nemožné a udělej to ;)
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 16.