Zufallszahlen für Bingo

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Zufallszahlen für Bingo

Re: Zufallszahlen für Bingo

von Karolus » Di, 02.10.2012 17:42

Hallo

Mit Bezug auf den Sourcecode aus posting.php?mode=reply&f=2&t=56588#pr213087
Bingo.ods
(10.42 KiB) 221-mal heruntergeladen
Karolus

Re: Zufallszahlen für Bingo

von echo » Di, 02.10.2012 16:54

hallo zusammen,
balu hat natürlich recht, früher oder später produziert die Beispieldatei doppelte Zufallszahlen. Das ist in Excel auch nicht anders.

Es lässt sich jetzt aber trefflich drüber streiten ob das schlimm ist.
Ich habe bei der 28.ten Neuberechnung [F9] das erste mal eine Zufallszahl doppelt gehabt.

Man könnte jetzt per Formel die Zufallszahlen überwachen und die Anzeige komplett unterdrücken und/oder ein Text anzeigen zB.: " Fehler, bitte neu wählen "

Ist das auch nicht gewünscht, bildet man von den Zufallszahlen den Rang und addiert erneut eine Zufallszahl.
Dann gibt es bei einer doppelten Zufallszahl zwar den gleichen Rang, aber immer noch keine Duplikate in der Spalte und schließlich bei der Ziehung.
Ich hänge mal an was ich meine

Gruß Holger
Dateianhänge
Unbenannt 1.ods
(17.47 KiB) 289-mal heruntergeladen

Re: Zufallszahlen für Bingo

von balu » Di, 02.10.2012 15:49

Hallo Leute,

eins vorweg: Mit Ziehung meinte ich das neuberechnen der Datei.

Die Datei funktioniert soweit. Aber es kann nicht garantiert werden das bei den Zufallszahlen keine doppler vorkommen, denn dafür ist das angewendete Verfahren nicht geeignet. Woher soll denn die Formel z.B. in A8 wissen das in A7 schon die gleiche Zufallszahl steht die in A8 eingetragen werden soll? Oder woher soll denn die Formel in A45 wissen was in A9 steht?

Mir ist kein Formelverfahren bekannt das eine Zufallsazahl zieht, diese mit den schon vorhandenen Zahlen vergleicht, und bei schon existierenden Zahlen eine neue Zufallszahl berechnet und das ganze so oft bis garantiert keine doppler vorkommen. So was lässt sich halt momentan nur mit Makro lösen.


Ich hänge jetzt mal die geänderte Datei von Holger an, in der ich die Zufallszahlen auf 2 Spalten aufgeteilt habe damit man eine bessere Übersicht über sie hat. Und ferner sind daneben 2 Spalten wo die Zufallszahlen sortiert stehen. Wenn eine Zahl doppelt vorkommt, dann wird das farblich hervorgehoben.



Gruß
balu
Dateianhänge
Unbenannt 1_B3.ods
(18.38 KiB) 212-mal heruntergeladen

Re: Zufallszahlen für Bingo

von Karolus » Di, 02.10.2012 12:06

tobi90 hat geschrieben:Spätestens in der dritten "Ziehung" kommen doppelte Zahlen vor - oder verstehe ich das Problem falsch?
Es geht auch nur um jeweils eine Ziehung ohne Duplikate.

Karolus

Re: Zufallszahlen für Bingo

von balu » Di, 02.10.2012 00:49

Hallo Holger
wenn gewünscht, das geht auch ohne Makro
Es wäre wirklich schön wenn es ohne Makro funktionieren würde. Aber es funktioniert eben nicht ohne, wie ich ja selber schon mal leider feststellen musste. Auch deine Beispieldatei produziert früher oder später doppelte Zahlen. Wenn nicht bei der 2ten Ziehung, dann vielleicht bei der 5ten oder 20ten. Auf jeden Fall kommen die doppelten Zahlen.

Getestet unter WinXP. Mit OOo 3.2.1 und LO 3.5.5.3

Kann vielleicht sein das in Excel es zu keine doppler kommt, aber hier geht es ja um Calc und nicht um Excel. Das aber nur so nebenbei bemerkt.



Gruß
balu

Re: Zufallszahlen für Bingo

von echo » Mo, 01.10.2012 22:04

Hallo zusammen,
wenn gewünscht, das geht auch ohne Makro

Ich hänge mal ein Beispiel an
lg Holger
Dateianhänge
Unbenannt 1.ods
(12.53 KiB) 343-mal heruntergeladen

Re: Zufallszahlen für Bingo

von bst » Mo, 01.10.2012 22:01

Hi,

nimm in Calc Extras->Optionen->Sicherheit->Makro Sicherheit->Mittel. Dann öffne die Datei und beantworte die Frage mit "Makros aktivieren".

cu, Bernd

Re: Zufallszahlen für Bingo

von Chaosina » Mo, 01.10.2012 21:22

Hej!
Danke für den Versuch, aber das Makro kommt nicht mit, oder falls ich was machen muss, dann weiß ich nicht genau was :)

Re: Zufallszahlen für Bingo

von bst » Mo, 01.10.2012 20:13

Hi Chaosina,

Du musst das als Matrixformel eingeben. Also zuerst einen Bereich aus 5 Zeilen und 5 Spalten selektieren, dann die Formel =BINGO() eintippen und dann nicht nur mit RETURN sondern mit STRG+SHIFT+RETURN bestätigen. Oder im letzten Schritt den Funktionsassistenten f(x) starten, unten links Matrix anwählen und dann OK klicken.

Der Code gehört in ein normales Modul in der Mappe.

Siehe Anhang.

HTH, Bernd
Dateianhänge
Bingo.ods
(13.19 KiB) 308-mal heruntergeladen

Re: Zufallszahlen für Bingo

von Chaosina » Mo, 01.10.2012 19:36

Hej!

Vielleicht hät ich dazu sagen sollen, dass ich mich eigentlich nicht wirklich auskenn :) Auf jeden Fall bin ich heillos überfordert mit euren Antworten, aber trotzdem Danke!

Chaosina

Re: Zufallszahlen für Bingo

von Karolus » Mo, 01.10.2012 12:08

Hallo

per Pythonscript:

Code: Alles auswählen

from random import sample

context = XSCRIPTCONTEXT

def bingo(dummy=None):
    doc = context.getDocument()
    sheet = doc.Sheets.getByIndex(0) #erstes Blatt
    rrange= sheet.getCellRangeByPosition( 0, 0, 4, 4 )
    numbers = tuple( sample( range( 1, 51 ), 25 ) )
    rrange.setDataArray( (  numbers[:5],
                                numbers[5:10],
                                numbers[10:15],
                                numbers[15:20],
                                numbers[20:]))

Re: Zufallszahlen für Bingo

von juetho » Mo, 01.10.2012 12:05

Chaosina hat geschrieben:Und wie schaffe ich es, dass er mir unterschiedliche Zahlen in die Felder von A1 bis E5 schreibt? :)
Die zweite Schleife wird aufgeteilt in zwei Schleifen: j von Startwert1 bis (Startwert1 + 4) und k von Startwert2 bis (Startwert2 + 4). getCellByPosition bekommt die Argumente j und k (statt 3 und j). Startwerte erwähne ich, weil du 20 Bereiche vorsehen willst; die Startwerte werden entweder aus der ersten Zelle, in der das Makro gestartet wird, übernommen oder per Dialog abgefragt. Jürgen

Oops, Bernd war schneller. Meine Antwort bezog sich auf seinen vorigen Code (nicht auf den letzten).

Re: Zufallszahlen für Bingo

von bst » Mo, 01.10.2012 12:03

Hi,

versuche das mal so. Selektiere 5*5 Zellen und schreibe dort die Matrixformel =BINGO() rein.

HTH, Bernd
--

Code: Alles auswählen

Function Bingo() as Variant
   const n = 50
   const m = 5
   dim i as integer, j as integer, x as integer, y as integer
   dim ar(1 to n) as integer
   dim intZufall as integer
   dim arOut(0 to m-1, 0 to m-1)
      
   for i = 1 to n
      ar(i) = i
   next
   
   x = 0
   y = 0
   i = n
   for j = 0 to m*m-1
      intZufall = int(i * rnd() + 1)
      arOut(x, y) = ar(intZufall)
      x = x + 1
      if x >= m then 
         x = 0
      	 y = y + 1
      endif
      ar(intZufall) = ar(i)
      i = i - 1
   next
   Bingo = arOut
End Function

Re: Zufallszahlen für Bingo

von Chaosina » Mo, 01.10.2012 10:49

Und wie schaffe ich es, dass er mir unterschiedliche Zahlen in die Felder von A1 bis E5 schreibt? :)
Ich weiß, ich könnt einfach die ersten zwei Zeilen von dir kopieren, aber ich brauch ja nicht nur 1 Bingo-Feld sondern 20 und dann wird das ganze unübersichtlich. Ich hab auf eine Funktion gehofft, die man am besten gar net sieht in der Tabelle

Nach oben