Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

11

17.04.2013, 06:41

OK, Evrey, wozu genau soll er jetzt das Rad nochmal neu erfinden statt die Random-Klasse zu benutzen? Speziell weil Du da eh "get_some_random_int" machst, was die Klasse nutzen sollte und da kann er auch gleich Random.NextBool() nehmen.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

TGGC

1x Rätselkönig

Beiträge: 1 799

Beruf: Software Entwickler

  • Private Nachricht senden

12

17.04.2013, 08:45

Dein Algorithmus hat eine Periode von 52 (die Werte wiederholen sich also ab dem 53.).
Dabei erzeugst du 28 mal true und 24 mal false (http://ideone.com/4YQNiT).
Du wirst also immer mehr true als false bekommen.
Ja, genau so ist es. Du erzeugst nicht jede der 52x52 Kombinationen, sondern nur bestimmte.

Evrey

Treue Seele

Beiträge: 245

Beruf: Weltherrscher

  • Private Nachricht senden

13

17.04.2013, 20:37

Gut, ich komme aus der C++-Ecke und wusste nicht, ob C# so etwas bereits von Haus aus mit schifft, weshalb ich mal diesen Ansatz zeigte.

C-/C++-Quelltext

1
2
3
4
int main(int _argc, char** _argv) noexcept {
  asm volatile("lock cmpxchg8b %eax");
  return 0;
} // ::main
(Dieses kleine Biest vermochte einst x86-Prozessoren lahm zu legen.)

=> Und er blogt unter Hackish.Codes D:

14

18.04.2013, 18:14

Danke für die weiteren Antworten!


@BlueCobold
Stimmt natürlich, jede Zufallszahl wird erst berechnet :D Aber es "wirkt unvorhersehbar", wenn es richtig angestellt wird, das meinte ich.

@Steef & TGGC
Ich habe zwei Variablen, die durchlaufen, wobei die Erste die Reihenfolge ganz normal nimmt und die Zweite mit Abständen von der Primzahl Sieben. Der Gedanke war, dass sich die Werte erst ab dem 2705. (52^2)wiederholen sollten, wenn alle Möglichkeiten verwendet wurden, aber offenbar habe ich das nicht richtig umgesetzt, da liegt der Fehler. Die Seite, auf die du verlinkst, zeigt das ja recht gut.

@Schorsch
Werde ich im Zweifelsfall so machen, aber es spricht finde ich auch nichts dagegen, wenn ich Lust habe, es erst selbst zu versuchen, zu Übungszwecken quasi. Wenn ich es nicht schaffe, kann ich immer noch nach einer fertigen Lösung suchen :)

@Jonathan_Klein Klingt ja recht interessant, aber nicht mehr mein Bier ;)

@Every Auf die Idee mit den Bits einer Zahl bin ich auch schon gekommen, aber ich hatte keine Idee, wie ich das schreiben könnte. Aber hat man dann nicht mehr True als False? Der erste Wert einer Zahl (außer bei der Null) ist immer eine 1, während man 1 und 0 danach gleich oft auffindet (12 = 1100, 21 = 10101).
Aber BlueCobold hat irgendwo Recht, ich kann mir die Mühe auch sparen.
In C++ muss man sich sowas also wirklich selbst machen? Du Armer :D


LG

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

15

18.04.2013, 18:25

C++11 hat mittlerweile auch sehr sehr gute und vor allem sehr customizable Random Numbers. Vor noch ein paar Jährchen blieb einem da nur die Funktion rand(), aber immerhin konnte man damit letztlich auch alles erreichen, auch die Booleans ;)
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Werbeanzeige