Money Wheel

0

Taka dosc prosta zagadka, ale jednak trudna. Zapewne sprawa jest prosta i nie da sie tego rozwiazac, aleeeeee kto wie.

Zasady sa w miare proste

Mamy takie pola do gry
1 -> wystepuje 24 razy. Mnoznik 1
3 -> wystepuje 12 razy. Mnoznik 3
5 -> wystepuje 8 razy. Mnoznik 5
10 -> wystepuje 4 razy. Mnoznik 10
20 -> wystepuje 2 razy. Mnoznik 20
45w -> wystepuje 1 raz. Mnoznik 45
45b -> wystepuje 1 raz. Mnoznik 45

45w != 45b
wiec jezeli polozylismy 3 tokeny na pole 1 dostaje 6 z powrotem. 3 ktore zagralismy oraz 3 x mnoznik (w tym przypadku 1)

Teraz zadanie jest takie, znalezc odpowiednia liczbe tokenow ktore gdzie trzeba polozyc by zawsze wygrac (albo byc na 0 [niestratnym] albo wygrac)

Jezeli byly by TYLKO dwa pola, powiedzmy 1x i 3x to mozna tokeny rozlozyc tak

1x --> 2
3x --> 2

Jezeli wypadloby 1 to nie tracimy nic (4 postawilismy, oraz 4 nam sie zwraca)
jezeli wypadloby 3 to zyskujemy 4 (4 postawilismy 8 zostaje zwrocone [2 ktore postawilismy oraz 2x3 = 6])

To teraz trzeba zrobic "to samo" tylko dla wszystkich pol ktore podalem powyzej. Mi sie udalo "wymyslec" z pominieciem jednego (3x). procent wygrania byl nadal mniejszy niz przegrana (bo wyszlo mniej wiecej ze mamy 10 procent wygrania czegos duzego a 25% na przegranie).

0

Coś namąciłeś:

fasadin napisał(a):

1 -> wystepuje 24 razy. Mnoznik 1
...
wiec jezeli polozylismy 3 tokeny na pole 1 dostaje 6 z powrotem. 3 ktore zagralismy oraz 3 x mnoznik (w tym przypadku 1)

Przecież pole 1 ma mnożnik 1, nie?

fasadin napisał(a):

Jezeli byly by TYLKO dwa pola, powiedzmy 1x i 3x to mozna tokeny rozlozyc tak

1x --> 2
3x --> 2

Jezeli wypadloby 1 to nie tracimy nic (4 postawilismy, oraz 4 nam sie zwraca)
jezeli wypadloby 3 to zyskujemy 4 (4 postawilismy 8 zostaje zwrocone [2 ktore postawilismy oraz 2x3 = 6])

Na ile zrozumiałem ta "grę" to kiedy wypadnie 1 to dostanę 2 zaś postawiłem tak jak mówisz 4

0

mysle ze nic nie zamacilem. Ja znalazlem juz odpowiedz do tego ;) ale moze ktos jeszcze chcialby sie pobawic wiec nie podam odpowiedzi.

na pole warte 1x klade 3. Gra wylosowala 1x wiec odbieram swoje zetony ktore potawilem (w tym wypadku 3) oraz po przeliczeniu 1x3 dostaje 3 od bankiera. Wiec jestem 3 na plusie, ale dostalem 6 z powrotem

Jezeli postawisz 2 na 1x to dostaniesz 2 od bankiera i 2 ktore zagarales wiec w sumie 4

Ja to widze tak

masz 100 tokenow. Ukladasz 25 na planszy. Te tokeny juz nie sa Twoje, one naleza do bankiera
masz 75 tokenow. Trafiasz, bank Ci podwaja to co dales na to pole w tym wypadku 25x2 = 50. Bank Ci zwraca 50
masz 125 tokenow

1

Czy te pola są różne?
Chodzi mi o to że jak wypadnie 1 to dostaję zbiór tylko z jednej x1 czy ze wszystkich ?

No to jak na moje oko to się nie da:

#include <iostream>
#include <iomanip>
#include <algorithm>
using namespace std;

typedef unsigned long long cnt_t;

int main()
  {
   struct { cnt_t mul,bit; } tb[]={ { 1,1 },{ 3,1 },{ 5,1 },{ 10,1 },{ 20,1 },{ 45,1 },{ 45,1 } };
   for(cnt_t prevbit=0,sumbit=1;prevbit<sumbit;)
     {
      prevbit=sumbit;
      sumbit=0;
      for(unsigned i=0;i<sizeof(tb)/sizeof(*tb);++i) sumbit+=tb[i].bit;
      for(unsigned i=0;i<sizeof(tb)/sizeof(*tb);++i) tb[i].bit=max(tb[i].bit,(sumbit+tb[i].mul)/(tb[i].mul+1));
      cout<<"\r"<<setw(16)<<sumbit<<':';
      for(unsigned i=0;i<sizeof(tb)/sizeof(*tb);++i) cout<<' '<<setw(15)<<tb[i].bit;
      cin.get();
     }   
   return 0;
  }

EDIT: A właściwie to nie zupełnie tak jak napisałem wyżej. Jest jedno rozwiązanie - wszędzie ustawiam zero żetonów.

1 użytkowników online, w tym zalogowanych: 0, gości: 1