Seite 2 von 2
					
				Re: Python Zufallsgenerator: bestimmte Zahlen ausgrenzen
				Verfasst: Donnerstag 18. September 2014, 16:16
				von Hyperion
				qEagleStrikerp hat geschrieben:
Nun ja, gerne, aber da ich ja erstmal ein wenig in den Dokumentationen und meinem Buch für Python rumstöbern muss, denke ich nicht, dass ihr mir dabei viel helfen könnt ^^
Es ging mir um die PN an BlackJack. Es klang so, als würdest Du ihn dann gerne nur persönlich bezüglich von Fragen zu Deiner Umsetzung ansprechen wollen 
Deine Frage an cofi verstehe ich nicht! Das solltest Du noch einmal besser formulieren. Evtl. mit einem Code-Beispiel?
 
			 
			
					
				Re: Python Zufallsgenerator: bestimmte Zahlen ausgrenzen
				Verfasst: Donnerstag 18. September 2014, 16:36
				von cofi
				qEagleStrikerp hat geschrieben:@cofi: Wie funktioniert das mit "statt z1-z6"? Wird dabei für jedes Paar der Wert errechnet und dann alle 6 Werte in "zs" eingetragen?
Nun, teste es doch 

 Aber ja, du bekommst eine 6-elementige Liste (bei 6 Paaren) und jedes Element wird zufaellig aus dem entsprechenden Paar gewaehlt.
 
			 
			
					
				Re: Python Zufallsgenerator: bestimmte Zahlen ausgrenzen
				Verfasst: Donnerstag 18. September 2014, 16:48
				von qEagleStrikerp
				cofi hat geschrieben:Nun, teste es doch 

 Aber ja, du bekommst eine 6-elementige Liste (bei 6 Paaren) und jedes Element wird zufaellig aus dem entsprechenden Paar gewaehlt.
 
Okay, probiere ich dann mal. Danke!
 
			 
			
					
				Re: Python Zufallsgenerator: bestimmte Zahlen ausgrenzen
				Verfasst: Donnerstag 18. September 2014, 16:50
				von qEagleStrikerp
				qEagleStrikerp hat geschrieben:cofi hat geschrieben:Nun, teste es doch 

 Aber ja, du bekommst eine 6-elementige Liste (bei 6 Paaren) und jedes Element wird zufaellig aus dem entsprechenden Paar gewaehlt.
 
Okay, probiere ich dann mal. Danke!
 
@Hyperion: Es ging mir nur darum, dass ich jemanden anschreibe, falls ich nach etwas Zeit dann antworte, aber keiner mehr in dem Thread unterwegs ist.
 
			 
			
					
				Re: Python Zufallsgenerator: bestimmte Zahlen ausgrenzen
				Verfasst: Donnerstag 18. September 2014, 17:14
				von BlackJack
				@qEagleStrikerp: Threads mit neuen Antworten wandern in der Übersicht wieder nach oben und sind ja auch durch ein entsprechendes Icon markiert.  Ich denke so einfach werden da keine neuen Beiträge übersehen.  Es gibt auch noch die beiden Links „Beiträge der letzten 24 Stunden” und „Ungelesene Beiträge” oben auf der Webseite.
			 
			
					
				Re: Python Zufallsgenerator: bestimmte Zahlen ausgrenzen
				Verfasst: Donnerstag 18. September 2014, 17:18
				von qEagleStrikerp
				BlackJack hat geschrieben:@qEagleStrikerp: Threads mit neuen Antworten wandern in der Übersicht wieder nach oben und sind ja auch durch ein entsprechendes Icon markiert.  Ich denke so einfach werden da keine neuen Beiträge übersehen.  Es gibt auch noch die beiden Links „Beiträge der letzten 24 Stunden” und „Ungelesene Beiträge” oben auf der Webseite.
Na gut, dann bis irgendwann in den nächsten Tagen, ich denke am Wochenende werde ich das auf jeden Fall schaffen.
 
			 
			
					
				Re: Python Zufallsgenerator: bestimmte Zahlen ausgrenzen
				Verfasst: Dienstag 7. Oktober 2014, 16:54
				von qEagleStrikerp
				Hi nochmal,
hatte die letzten Wochen leider nicht die Zeit dazu, aber hab mich heute nochmal damit beschäftigt.
1. Es macht keinen großen Sinn, jetzt eine Datenstruktur anzulegen, dadurch ändert sich an der Durchführung des Programms und damit auch meinem Problem nämlich gar nichts.
2. Ein Freund von mir (arbeitet mit Pascal und Delphi) meinte, bei ihm gäb es die Möglichkeit, über die Funktion "randomize" den Zufallsgenerator neu zu initialisieren. Das wäre genau das, was mein Problem lösen würde. Wie mache ich so etwas in Python?
Danke für eure Hilfe!
			 
			
					
				Re: Python Zufallsgenerator: bestimmte Zahlen ausgrenzen
				Verfasst: Dienstag 7. Oktober 2014, 17:12
				von BlackJack
				@qEagleStrikerp: 1. Doch es macht Sinn statt sich wiederholendem Code und durchnummerierten Namen eine Datenstruktur zu verwenden.  Das Programm wird dadurch kürzer und verständlicher.  Ausserdem leichter zu ändern weil man nicht mehrere Kopien vom im Grunde gleichen Code anfassen muss.
Ich hatte ja schon eine passende Funktion gepostet.
2. Das neu initialisiseren des Zufallsgenerators löst Dein Problem ganz sicher nicht, denn der wird bereits initialisert.  Das ist bei Pascal/Delphi nicht der Fall, da muss man das tatsächlich selber machen.
			 
			
					
				Re: Python Zufallsgenerator: bestimmte Zahlen ausgrenzen
				Verfasst: Dienstag 7. Oktober 2014, 17:39
				von qEagleStrikerp
				@Black Jack: Schade, wäre zu schön gewesen. ^^ Dann werde ich das Programm mal umschreiben.
			 
			
					
				Re: Python Zufallsgenerator: bestimmte Zahlen ausgrenzen
				Verfasst: Mittwoch 8. Oktober 2014, 16:37
				von qEagleStrikerp
				Hi nochmal,
habe das Programm jetzt auf "cofi" Art geschrieben und dabei ist folgendes rausgekommen:
Code: Alles auswählen
# -*- coding: cp1252 -*-
# Zufallsgenerator
import random
# DV-Paare
pairs = [(0,0),     #KP
         (0,0),     #Angriff
         (31,31),   #Verteidigung
         (0,0),     #Spez.-Angriff
         (31,0),    #Spez.-Verteidigung
         (31,0)]    #Initiative
# Auswahl für einzelne Werte
zs = [random.choice(pair) for pair in pairs]
# Auswahl der 3 vererbten Werte
chosen = list([random.choice(zs)])
print(chosen)
chosen.add(random.choice(list(zs-chosen)))
chosen.add(random.choice(list(zs-chosen)))
# Ergänzen der 3 zufälligen Werte
chosen.add(random.randint(0,31))
chosen.add(random.randint(0,31))
chosen.add(random.randint(0,31))
# Ausgabe
print(chosen)
Ich muss sagen, ihr habt recht, ist echt um einiges übersichtlicher. Aber es scheint Probleme mit den Listentypen zu geben. Wie löse ich das?
Danke im Voraus! 

 
			 
			
					
				Re: Python Zufallsgenerator: bestimmte Zahlen ausgrenzen
				Verfasst: Mittwoch 8. Oktober 2014, 16:47
				von EyDu
				Programmieren funktioniert nicht mittels Raten, du musst schon wissen was du machst. Was soll denn passieren, wenn du Listen von Listen subtrahierst, das ist doch ein wenig unsinnig. Die list-Aufrufe in den Zeilen 18, 20 und 21 deuten auch auf geraten hin. Die sind nämlich total überflüssig. Du suchst wahrscheinlich Mengen (sets). Zeilen 24 bis Ende sind wahrscheinlich auch nicht so gemeint, wie sie dort stehen. Da werden nämlich Tupel mit Integern in einer Liste vermischt. Verschiedene Datentypen in einer Liste möchte man normalerweise vermeiden.
Und dann noch ein wertvoller Hinweise: Schreibe Code niemals blind runter, sondern teste die Zwischenschritte. Bei dir schmiert das Programm ja schon relativ früh ab, der ganze Rest danach baut dann auf falschen Annahmen auf. Lasse deinen Code also zwischendurch mal laufen. Und wenn er irgendwo nicht durchläuft, dann behebe erst den Fehler und programmiere anschließen dahinter weiter.
			 
			
					
				Re: Python Zufallsgenerator: bestimmte Zahlen ausgrenzen
				Verfasst: Mittwoch 8. Oktober 2014, 17:09
				von qEagleStrikerp
				Hi,
ich mach das normalerweise schon so. Auch heute. Nur bin ich bei dem Problem mit den Listen hängen geblieben, hab aber den restlichen Code schonmal eingetippt, sodass ich später nur noch Details ändern muss.
Btw: Das mit dem Listen voneinander subtrahieren hat im letzten Programm bereits funktioniert, wenn du dir die paar Nachrichten vor deiner mal durchliest. Das hat wirklich wunderbar funktioniert. Aber jetzt mit den Tupeln war das nicht mehr so leicht. Mir ist aufgefallen, dass es bei zs eine Liste mit [] ergibt und bei chosen eine mit {}. Ich hab vermutet, dass dort das Problem liegt, bin aber noch zu unerfahren um sowas zu lösen. Daher hab ich auch das aktuell fehlerhafte Programm online gestellt, damit mir bei eben diesem Problem geholfen werden kann.
			 
			
					
				Re: Python Zufallsgenerator: bestimmte Zahlen ausgrenzen
				Verfasst: Mittwoch 8. Oktober 2014, 17:23
				von Sirius3
				@qEagleStrikerp: Der Unterschied zwischen [] und {} ist der, dass ersteres eine Liste und zweiteres ein Set erzeugt. Wenn Dir soetwas unklar ist, solltest Du es in der Python-Dokumentation nachlesen, statt es unverstanden zu verwenden.
			 
			
					
				Re: Python Zufallsgenerator: bestimmte Zahlen ausgrenzen
				Verfasst: Mittwoch 8. Oktober 2014, 20:08
				von Hyperion
				Vor allem sollte man solche Dinge sofort ad hoc in einer interaktiven Shell (aka REPL) austesten und damit experimentieren 

 
			 
			
					
				Re: Python Zufallsgenerator: bestimmte Zahlen ausgrenzen
				Verfasst: Mittwoch 26. November 2014, 17:51
				von qEagleStrikerp
				Hi zusammen,
hab mich letztens mal wieder hingesetzt und das Programm komplett neu geschrieben, diesmal mit Dictionarys. Hab es dann in einem 2. Python Programm über "exec" in einer Schleife aufgerufen und schon kamen erwartete Werte raus.
Danke für eure Bemühungen!
			 
			
					
				Re: Python Zufallsgenerator: bestimmte Zahlen ausgrenzen
				Verfasst: Mittwoch 26. November 2014, 17:52
				von BlackJack
				@qEagleStrikerp: Warum um Himmels willen mit `exec`‽  Das ist mit Sicherheit nicht das richtige Werkzeug für so eine Aufgabe.
			 
			
					
				Re: Python Zufallsgenerator: bestimmte Zahlen ausgrenzen
				Verfasst: Mittwoch 26. November 2014, 19:00
				von qEagleStrikerp
				BlackJack hat geschrieben:@qEagleStrikerp: Warum um Himmels willen mit `exec`‽  Das ist mit Sicherheit nicht das richtige Werkzeug für so eine Aufgabe.
Erstaunlicherweise habe ich aber mit folgendem Code (ist nur ein Ausschnitt) genau die Werte bekommen, die ich zuvor theoretisch berechnet habe. Daher eignet es sich scheinbar doch.
Code: Alles auswählen
for i in range(1000000):
    exec(open("dv core ohne fatumknoten.py").read())
Edit: Das Problem war ja, dass ich, wenn ich das Kernprogramm in eine Schleife gesetzt hab, immer ähnliche Werte rausbekommen habe. irgendein Fehler mit dem Zufallsgenerator also. Nun habe ich ein zweites Programm erstellt, dass das erste n mal aufruft - dabei stimmen die Werte.
Edit 2: Ich habe es gerade nochmal probiert, es geht doch ^^. Bei dem alten Programm hat also generell irgendwas wohl nicht so ganz gestimmt.
 
			 
			
					
				Re: Python Zufallsgenerator: bestimmte Zahlen ausgrenzen
				Verfasst: Mittwoch 26. November 2014, 20:28
				von BlackJack
				@qEagleStrikerp: Nur weil etwas funktioniert eignet es sich nicht automatisch.  Man kann auch Nägel mit dem Griff eines Schraubendrehers in die Wand kloppen, das macht den Schraubendreher aber nicht zum richtigen Werkzeug für diese Aufgabe.
			 
			
					
				Re: Python Zufallsgenerator: bestimmte Zahlen ausgrenzen
				Verfasst: Donnerstag 27. November 2014, 17:18
				von qEagleStrikerp
				BlackJack hat geschrieben:@qEagleStrikerp: Nur weil etwas funktioniert eignet es sich nicht automatisch.  Man kann auch Nägel mit dem Griff eines Schraubendrehers in die Wand kloppen, das macht den Schraubendreher aber nicht zum richtigen Werkzeug für diese Aufgabe.
^^ Da hast du natürlich vollkommen recht. Wie ich ja nachträglich noch geschrieben habe, funktioniert das Programm ja auch mit Schleife, was exec überflüssig macht.