Hallo,
Ich fange gerade an mit Python und probiere das infinite Money Paradoxon zu programmieren welches ich auf yt gesehen habe und bräuchte Hilfe
Infinite Money Paradoxon:
Eine Münze wird geworfen, bei Kopf verdoppelt sich der Einsatz und bei Zahl ist es vorbei und man behält seinen gesetzten Betrag.
Ich will eine Simulation machen mit 1000 Würfen und am Ende wissen was der Durchschnitts Gewinn ist dafür habe ich einen String hinzugefügt zu dem die Ergebnisse addiert werden um danach den durschnitt errechnen zu lassen.
Allerdings bekomme ich beim ausführen: TypeError: can only concatenate str (not "int") to str
Hier ist meinCode ich würde mich über Hilfe und Verbesserungs Vorschläge freuen Lg
x = 1 #Gesetzter Betrag
z = "" #alle Ergebniss
import random
for i in range(1000):
y = random.randint(1, 2) #Münzwurf
if y == 2:
x = x* 2
else:
z = z + x #Ergebniss soll zu str addiert werden
x = 1
print(z)
Infinite Money Paradoxon
@jonathan W: Ich habe aus Versehen den “Spam Vorgang” getriggert, weil englischer Titel & Money… darum ist dein Account gesperrt. Das war natürlich ein Fehler, dafür entschuldige ich mich. Ich fürchte du musst dich nochmal registrieren. Ggf kann Damaskus helfen. Ich leider nicht.
- __blackjack__
- User
- Beiträge: 13241
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@Jonathan.W: Die Fehlermeldung sagt ziemlich deutlich was das Problem ist. Was denkst Du denn was das addieren von einem Text und einer Zahl ergeben sollte‽
Sonstige Anmerkungen: Bei Python sind Einrückungen wichtig, darum musst Du den Quelltext im Beitrag in Code-Tags setzen, damit die Einrückung erhalten bleibt in der Anzeige.
Statt Kommentare zu schreiben was `x`, `y`, und `z` bedeuten sollen, sollten die Variablen Namen bekommen die verraten was der Wert bedeutet.
Vor Importen kommt in der Regel nur (jeweils optional) die Shebang-Zeile, und/oder der Kodierungskommentar, und/oder der Modul-Docstring. Damit man möglichst am Anfang schon sieht wovon das Modul abhängt.
Das Ergebnis vom Münzwurf muss man nicht unbedingt an einen Namen binden, denn der Wert wird ja nur an einer Stelle — in der ``if``-Bedingung — verwendet.
Zum Sankt-Petersburg-Paradoxon selbst: Das ist komisch bis falsch implementiert, weil die Implementierung das auf 1.000 Münzwürfe beschränkt, also nicht 1.000 mal spielt, sondern wie viel Spiele auch immer innerhalb von 1.000 Würfen gespielt werden. Das können ja jedes mal unterschiedlich viele sein. Und am Ende dann eines das nicht zu ende gespielt wurde. Wenn man den Durchschnittsgewinn davon wissen möchte, müsste man auch mitzählen wie viele Spiele es denn waren. Sinnvoller wäre es das Spiel 1.000 mal zu spielen, also eine feste Anzahl von Spielen zu absolvieren.
Mal spasseshalber in Commodore BASIC V2:
Sonstige Anmerkungen: Bei Python sind Einrückungen wichtig, darum musst Du den Quelltext im Beitrag in Code-Tags setzen, damit die Einrückung erhalten bleibt in der Anzeige.
Statt Kommentare zu schreiben was `x`, `y`, und `z` bedeuten sollen, sollten die Variablen Namen bekommen die verraten was der Wert bedeutet.
Vor Importen kommt in der Regel nur (jeweils optional) die Shebang-Zeile, und/oder der Kodierungskommentar, und/oder der Modul-Docstring. Damit man möglichst am Anfang schon sieht wovon das Modul abhängt.
Das Ergebnis vom Münzwurf muss man nicht unbedingt an einen Namen binden, denn der Wert wird ja nur an einer Stelle — in der ``if``-Bedingung — verwendet.
Zum Sankt-Petersburg-Paradoxon selbst: Das ist komisch bis falsch implementiert, weil die Implementierung das auf 1.000 Münzwürfe beschränkt, also nicht 1.000 mal spielt, sondern wie viel Spiele auch immer innerhalb von 1.000 Würfen gespielt werden. Das können ja jedes mal unterschiedlich viele sein. Und am Ende dann eines das nicht zu ende gespielt wurde. Wenn man den Durchschnittsgewinn davon wissen möchte, müsste man auch mitzählen wie viele Spiele es denn waren. Sinnvoller wäre es das Spiel 1.000 mal zu spielen, also eine feste Anzahl von Spielen zu absolvieren.
Mal spasseshalber in Commodore BASIC V2:
Code: Alles auswählen
LIST
10 N=1000:W=0:ZZ=RND(-TI)
20 FOR I=1 TO N
30 M=1
40 C=RND(1)<0.5
50 IF C THEN M=M*2:GOTO 40
60 W=W+M
70 NEXT
80 PRINT W/N
READY.
RUN
6.46
READY.
RUN
4.924
READY.
Please call it what it is: copyright infringement, not piracy. Piracy takes place in international waters, and involves one or more of theft, murder, rape and kidnapping. Making an unauthorized copy of a piece of software is not piracy, it is an infringement of a government-granted monopoly.