5 verschiedene zufallszahlen generieren ohne viel aufwand

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
dr_Alex
Mitglied
Beiträge: 93
Registriert: 19.04.2003 16:43
Wohnort: Bad Berleburg

5 verschiedene zufallszahlen generieren ohne viel aufwand

Beitrag von dr_Alex »

ich möchte mit rand 5 verschiedene zahlen haben.
es wäre unsauber wenn ich in einer if abfrage, frage ob die zahl schon vorhanden ist bzw generiert wurde. zB so will ich das nicht haben:

Code: Alles auswählen

$z1=rand(1,69);
$z2=rand(1,69);
$z3=rand(1,69);
$z4=rand(1,69);
$z5=rand(1,69);
if ($z1==$z2) {
$z2=rand(1,69);
}
if ($z2==$z3) {
$z3=rand(1,69);
}
...
und so müsste man jede zahl mit einander vergleichen also ca 25 if abfragen.

könnte man dies nicht irgentwie in einer for oder while lösen?
cooler forum für deutsch-russisch sprachigen menschen: http://www.russian-board.com ...
wenn jemand seinen mod auf russisch haben will dann schickt mir eine PM und ich werde das gerne für euch übersetzen ...
dr_Alex
Mitglied
Beiträge: 93
Registriert: 19.04.2003 16:43
Wohnort: Bad Berleburg

Beitrag von dr_Alex »

ok hab selber rausgefunden :grin:

Code: Alles auswählen

for ($i=1; $i<6; $i++) {
   $z[$i]['rand']=rand(0,60);	
}
for ($i=1; $i<6; $i++) {
   for ($if=1; $if<6; $if++) {
      while($z[$i]['rand']==$z[$if]['rand']){
         $z[$if]['rand']=rand(0,60);
      }
   }
}
die frage istz nur ob diese lösung wirklich sauber ist. aufjedenfall ist die in der grenze der gebrauchten zahlen variabel.
cooler forum für deutsch-russisch sprachigen menschen: http://www.russian-board.com ...
wenn jemand seinen mod auf russisch haben will dann schickt mir eine PM und ich werde das gerne für euch übersetzen ...
dr_Alex
Mitglied
Beiträge: 93
Registriert: 19.04.2003 16:43
Wohnort: Bad Berleburg

Beitrag von dr_Alex »

ich musst leider mit bedauern feststellen das mein code nicht geht. gibt es villeicht eine funktion bei php die gleiche zahlen verhindert?
cooler forum für deutsch-russisch sprachigen menschen: http://www.russian-board.com ...
wenn jemand seinen mod auf russisch haben will dann schickt mir eine PM und ich werde das gerne für euch übersetzen ...
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Erstell ein leeres Array. Dann machst du eine Schleife, die dann abbricht, wenn in dem Array fünf Elemente sind.
In der Schleife legst du die Zufallszahl in eine Variable. Dann prüfst du, ob der Wert der Variable schon im Array enthalten ist ([php:in_array]). Wenn ja, fügst du die Variable dem Array hinzu.

Coden darfst du das aber selbst :-D

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Benutzeravatar
r4bbIt
Mitglied
Beiträge: 99
Registriert: 07.10.2003 17:32
Wohnort: Neuenkirchen City
Kontaktdaten:

Beitrag von r4bbIt »

Code: Alles auswählen

<?php
function genzahl($zahl=5)
{
	$zahlen=array();
	
	for($i=0; $i<$zahl; $i++)
	{
		$fertig=false;
		$zahlneu = rand(0,9);
		while(in_array($zahlneu, $zahlen))
		{
			$zahlneu = rand(0,9);
		}
		$zahlen[$i]=$zahlneu;
	}
	
	$ausgabe="";
	
	foreach($zahlen as $zahl)
	 $ausgabe.=$zahl;
	
	return $ausgabe;
}
print(genzahl());
?>
nicht perfekt funzt aber.
dr_Alex
Mitglied
Beiträge: 93
Registriert: 19.04.2003 16:43
Wohnort: Bad Berleburg

Beitrag von dr_Alex »

jooo dat geht ja :D

danke euch für die hilfe. eine funktion wie in_array hat mir schon lange gefehlt :D
cooler forum für deutsch-russisch sprachigen menschen: http://www.russian-board.com ...
wenn jemand seinen mod auf russisch haben will dann schickt mir eine PM und ich werde das gerne für euch übersetzen ...
Antworten

Zurück zu „Coding & Technik“