php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 12.01.2012, 22:28  
Moz
Neuer Benutzer
 
Benutzerbild von Moz
 
Registriert seit: 12.01.2012
Beiträge: 2
PHP-Kenntnisse:
Anfänger
Moz befindet sich auf einem aufstrebenden Ast
Standard Doppelter Zufallsgenerator

Hey,
ich würde gerne mit der Funktion "mt_rand" zwei Zahlen generieren.
Das heisst ich brauch die Funktion zwei mal, soweit so gut.

Die generierten Zahlen dürfen aber in keinem Fall gleich sein.
Habt ihr eine Idee wie sich das machen lässt?
Eventuell mit einem "array_unique"?

Am Ende sollte zwei Variablen mit den zwei Werten herauskommen.

Gruß,
Kevin
Moz ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 12.01.2012, 22:41  
Erfahrener Benutzer
 
Registriert seit: 01.06.2011
Beiträge: 390
PHP-Kenntnisse:
Anfänger
achtelpetit befindet sich auf einem aufstrebenden Ast
Standard

Du könntest zwei Zufallszahlen erzeugen und als erste Variable nimmst Du die erste Zufallszahl und als zweite Variable das Produkt aus der ersten und der zweiten Zufallszahl.
oder
Du erzeugst die erste Zufallszahl und läßt dann eine Schleife laufen, die solange Zufallszahlen ausspuckt, bis die erste und die zweite NICHT gleich sind.
oder
Erste Zufallszahl erzeugen und die zweite ist das Produkt aus der ersten mal Mikro-Sekundenzahl des aktuellen Zeitpunkts.
oder oder oder
achtelpetit ist offline   Mit Zitat antworten
Alt 12.01.2012, 22:43  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

PHP-Code:
$zahl1 mt_rand();
while (
true) {
  
$zahl2 mt_rand();
  if (
$zahl2 != $zahl1) {
    break;
  }

__________________
Warum denkt mein Hund eigentlich immer dann, wenn es an der Tür klingelt, es sei für ihn?
Wolla ist offline   Mit Zitat antworten
Alt 12.01.2012, 22:43  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Du könntest zwei Zufallszahlen erzeugen und als erste Variable nimmst Du die erste Zufallszahl und als zweite Variable das Produkt aus der ersten und der zweiten Zufallszahl.
Das reduziert die zweite Zufälligkeit aber gewaltig.
- Anhängig von 1)
- größer als 1)
- keine Primzahl
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 12.01.2012, 22:49  
Benutzer
 
Registriert seit: 31.05.2011
Beiträge: 49
PHP-Kenntnisse:
Fortgeschritten
DonManfred befindet sich auf einem aufstrebenden Ast
Standard

Merk Dir nach dem erstellen des Zufallswert eben diesen und erzeuge einnen neuen. Wenn der gleich dem germerkten ist dann musst Du einen neuen Namen erzeugen.

PHP-Code:
$zufall1 mt_rand();
$zufall2 $zufall1;
while (
$zufall1 == $zufall2) {
  
$zufall2 mt_rand();
}
echo 
$zufall1."<br />";
echo 
$zufall2
DonManfred ist offline   Mit Zitat antworten
Alt 12.01.2012, 23:09  
php.de
Gast
 
Beiträge: n/a
Standard

PHP-Code:
<?php
   
/**
    * @param array $_values
    * @param int $_count
    * @return array
    * @throws Exception
    */
   
function getRandomValues(array &$_values$_count 1) {
      if (!
is_int($_count) || $_count || $_count count($_values))
         throw new 
Exception();
         
      
$random = array();
      for (
$i 0$i $_count; ++$i) {
         
$j mt_rand(0count($_values) - 1);
         
$random[] = $_values[$j];
         
$_values array_merge(
            
array_slice($_values0$j),
            
array_slice($_values$j 1)
         );
      }

      return 
$random;
   }
   
$values range(012);
   
$random getRandomValues($values2);
Habe ich aber nicht getestet.

EDIT: logischen Fehler korrigiert

Geändert von php.de (13.01.2012 um 00:04 Uhr).
  Mit Zitat antworten
Alt 13.01.2012, 07:30  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

PHP-Code:
function getUniqueRandoms$start 0$end PHP_INT_MAX$count ) {
   
$start = (int)$start$end = (int)$end$count = (int)$count;
   
$outbound = array();
   while ( 
count($outbound) < $count ) {
      
$cur mt_rand($start$end);
      if ( !
in_array($cur$outbound) ) $outbound[] = $cur;
   }
   return 
$outbound;

@php.de: Wird lustig wenn du ne Array-Range übergibst die PHP_INT_MAX Einträge hat.
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Alt 13.01.2012, 13:50  
meikel
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von tr0y Beitrag anzeigen
@php.de: Wird lustig wenn du ne Array-Range übergibst die PHP_INT_MAX Einträge hat.
Solche Grenzfälle sollte man zwar im Auge behalten, aber:
http://mod.php.developer.vc/PHP_INT_MAX/

Code:
PHP_INT_MAX: 9.223.372.036.854.775.808
Das wäre ein sehr fettes Array, bei dem ich Zweifel hätte, ob sowas in den handelsüblichen Scriptspeicher reinpassen würde.
  Mit Zitat antworten
Alt 13.01.2012, 15:32  
Erfahrener Benutzer
 
Benutzerbild von jspit
 
Registriert seit: 19.08.2011
Beiträge: 701
PHP-Kenntnisse:
Anfänger
jspit wird schon bald berühmt werden
Standard

Lustig wird es schon wenn man mehr Zahlen ziehen will als der Bereich hergibt.
Hab mir mal erlaubt eine kleine Änderung einzufügen:
PHP-Code:
function getUniqueRandoms$start 0$end PHP_INT_MAX$count ) {
   
$start = (int)$start$end = (int)$end$count = (int)$count;
   if(
$count $end $start +1) return false;
   
$outbound = array();
   while ( 
count($outbound) < $count ) {
      
$cur mt_rand($start$end);
      if ( !
in_array($cur$outbound) ) $outbound[] = $cur;
   }
   return 
$outbound;


Geändert von jspit (13.01.2012 um 15:48 Uhr). Grund: code geändert: +1
jspit ist offline   Mit Zitat antworten
Alt 13.01.2012, 15:35  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

Wenn man mehr einzigartige Zahlen haben will als eine Zahlen-Range überhaupt Zahlen hat, gibs sicherlich Medizinisch-Psychatrische Behandlungsmethoden in geschlossenen Anstalten.

PHP-Code:
function getUniqueRandoms$start 0$end PHP_INT_MAX$count ) { 
   
$start = (int)$start$end = (int)$end
   
$count = (int)$count $end $start $count : -1
   
$outbound = array(); 
   while ( 
count($outbound) < $count ) { 
      
$cur mt_rand($start$end); 
      if ( !
in_array($cur$outbound) ) $outbound[] = $cur
   } 
   return 
$outbound

__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.

Geändert von tr0y (13.01.2012 um 15:40 Uhr).
tr0y ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Doppelter Datenbankeintrag (mysqli_insert_id) soccersascha Datenbanken 1 01.09.2011 19:02
[Erledigt] Löschen doppelter Buchstaben / Zeichen &amp; psd-Bilder aus Buchstaben erzeuge phpjoe Gewerblich 3 26.08.2011 09:09
Doppelter Mailversand an mich und Absender PrimeCon PHP Einsteiger 6 30.11.2010 23:02
Doppelter E-Mail versand include21 PHP Tipps 2010 3 06.05.2010 15:47
doppelter eintrag in datenbank Noidea PHP Tipps 2010 9 12.02.2010 14:53
FF vs IE - Anzeigefehler beim IE (Doppelter Content) PsychoEagle HTML, Usability und Barrierefreiheit 1 20.03.2008 12:02
Daten per Zufallsgenerator aus DB auslesen pullox PHP Tipps 2006 16 17.02.2006 11:44
Doppelter Array SvenLittkowski PHP Tipps 2006 5 08.01.2006 13:55
Zufallsgenerator für Zahlen und Buchstaben PHP Tipps 2005-2 14 02.10.2005 19:30
Zufallsgenerator PHP Tipps 2005-2 2 07.07.2005 19:09
doppelter eintrag? PHP Tipps 2005-2 22 01.07.2005 16:09
Doppelter IF-Code??? PHP Tipps 2005-2 2 01.07.2005 14:09
Zufallsgenerator selbst programmieren Jojo1 Off-Topic Diskussionen 6 06.06.2005 04:11
per Zufallsgenerator verschiedene rss-feed-urls einbinden PHP Tipps 2004 1 30.08.2004 09:46

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
zufallsgenerator php, zufallsgenerator zahlen und buchstaben, zufallsgenerator buchstabe zahl buchstabe zahl, php zahlen zufallsgenerator, php zufallsgenerator

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:49 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum