2016-06-18 5 views
-1

Was ich versuche herauszufinden, in Python ist, ich in 4cents in einem Wett-Spiel setzen, aber wenn ich verliere, ich 2x meine ursprüngliche Wette jede Zeit ich verliere. Also möchte ich sehen, wie viele Versuche ich bekomme, bevor ich mein Limit (500) erreiche.Versuch, einfache Mathematik zu tun

meme = 2 
while True: 
    meme = meme + 2 
    for x in range(0, 500, 4*meme): 
     meme = meme + 2 
     print(x) 
+1

Wie viel müssen Sie mit anfangen? "Wenn ich I x2 meine ursprüngliche Wette verliere, verliere ich jedes Mal." dann? –

+0

Ich beginne mit 500 das ist meine – standorfall999

+0

Also wenn ich verliere, werde ich 4 * 2 = 16 tun und ich wieder verlieren, 16 * 2, ect – standorfall999

Antwort

1

Ihr Code

ich wirklich keine Ahnung, nicht haben, was Ihr Code versucht zu tun, aber ich werde einige Fehler erwähnen, die definitiv nicht dort sein sollte.

meme = 2 
# You will never break out of the loop 
while True: 
    meme = meme + 2 
    # I don't think you wanted to step 4*meme times 
    for x in range(0, 500, 4*meme): 
     meme = meme + 2 
     print(x) 

Die Lösung des Problems

Was sollten Sie tun suchen ist eine Variable multiplizieren und eine amount Variable abziehen, während amount größer als 0

ist
starting_amount = 500 
starting_bet = 4 

bet = starting_bet 
amount = starting_amount 
count = 0 
while amount > 0: 
    amount -= bet 
    bet *= 2 
    count += 1 

print(count) 

Der Code wird ausspucken:

$> python test.py 
7 

$> 

Ein besserer Weg

Nachdem ich das Problem erneut gelesen hatte, dachte ich an eine noch bessere Lösung, die überhaupt keine Schleifen benötigt! Dazu können Sie Logarithmen aus dem Modul math verwenden.

from math import log, floor 
# You can change these 
bet = 4 
amount = 500 
multiplier = 2 
# Calculations 
n = log(bet, multiplier) 
print(floor(log(amount, multiplier) - n) + 1) 
1
meme = 2 
while True: 
    meme = meme + 2 
    count = 0 
    for x in range(0, 500, 4*meme): 
     count +=1 
     meme = meme + 2 
    print count 
    raw_input() 
+0

Ich bekomme Spam mit 1 – standorfall999

+0

diesen Code ausführen. und wenn es eine Ausgabe gibt, drücken Sie die Eingabetaste, dann gibt es die zweite Ausgabe –

+0

Sie erhalten eine Menge von Einsen, weil die True-Schleife mehrmals ausgeführt wird. und vernünftige Ausgabe wird nur in ersten 3-4 Zeilen gedruckt –

0
sum = 4 
print (sum) 
i = 0 

for i in range (500): 
    sum = sum * 2 
    print (sum) 
    i = i + 1 
    if (sum > 500): 
     break 

print("you can do it " + str(i) + " times")