PHP5 : 4 nombres aleatoires et differents

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : PHP5 : 4 nombres aleatoires et differents

Re: PHP5 : 4 nombres aleatoires et differents

par jehanon » 01 mars 2010, 18:57

oui je vais me simplifier la vie quoique j'aime bien ces déclarations plus explicites venant de .net

merci

Re: PHP5 : 4 nombres aleatoires et differents

par AB » 01 mars 2010, 18:53

Tu pourrais aussi déclarer ton tableau "global", mais ce n'est pas recommandé tant qu'on peut faire facilement autrement.

Re: PHP5 : 4 nombres aleatoires et differents

par jehanon » 01 mars 2010, 16:46

ok il faut affecter le tableau à une variable qui devient le tableau

merci

Re: PHP5 : 4 nombres aleatoires et differents

par Calimero » 01 mars 2010, 16:38

Pour accéder à des éléments du tableau ( [...] ) , il faut passer par une variable :
$tableau = MaFonctionQuiRetourneUnTableau($param1,$param2);
echo $tableau['cle'];

Re: PHP5 : 4 nombres aleatoires et differents

par jehanon » 01 mars 2010, 08:07

merci pour ce complément d'informations, j'ai utilisé la 1 mais directement dans une fonction
comment fait on pour récupérer un array que retourne une fonction ?

Code : Tout sélectionner

function RandArray () { $unArray[] = ..... ...... return $unArray; }
si je veux l'utiliser dans une autre fonction ?

Code : Tout sélectionner

function useArray () { $var = RandArray[2] ; return $var; }
ce dernier code ne marche pas

merci

Re: PHP5 : 4 nombres aleatoires et differents

par AB » 01 mars 2010, 02:54

A noter que l'utilisation des deux fonctions données par Dr@ke doivent être employées suivant le contexte et pas indifféremment :

La première méthode est particulièrement efficace pour retourner un petit nombre de valeurs uniques dans un intervalle assez grand.
Grosso modo on peut l'employer sans souci si le nombre de valeur à retourner est ~ inférieure à 10% de l'intervalle ex : retourner 10 valeurs uniques entre 0 et 100.

Par contre cette méthode peut devenir très lente si le nombre de valeurs à retourner s'approche de l'intervalle ex : retourner 90 valeurs uniques en 0 et 100.

Dans ce cas la seconde méthode est particulièrement appropriée. Mais cette seconde méthode possède néanmoins l'inconvénient de ne pas pouvoir être utilisée (ou sera très très lente et gourmande en ressource) sur de très gros intervalles puisque l'on crée avec la fonction range un tableau de la taille de l'intervalle. Eviter donc de dépasser 1000 éléments pour le tableau (soit par exemple un intervalle de 0 à 1000) avec cette seconde méthode.

Re: PHP5 : 4 nombres aleatoires et differents

par jehanon » 28 févr. 2010, 23:38

merci

Re: PHP5 : 4 nombres aleatoires et differents

par Dr@ke » 28 févr. 2010, 23:36

Exemple sur php.net:
<?php
$rand = array();
while (count($rand) < $total ) {
    $r = mt_rand($min,$max);
    if ( !in_array($r,$rand) ) {
        $rand[] = $r;
    }
}
?>
Ou:
<?php
 function uniqueRand($n, $min = 0, $max = null)
 {
  if($max === null)
   $max = getrandmax();
  $array = range($min, $max);
  $return = array();
  $keys = array_rand($array, $n);
  foreach($keys as $key)
   $return[] = $array[$key];
  return $return;
 }
?>
...

Re: PHP5 : 4 nombres aleatoires et differents

par Dr@ke » 28 févr. 2010, 23:25

Bien suffit de paramétrer des intervalles différents, ou de vérifier le résultat ensuite, et donc de relancer un rand() si nécessaire ou ajouter un chiffre...

Re: PHP5 : 4 nombres aleatoires et differents

par jehanon » 28 févr. 2010, 23:23

rand tire des nombres aléatoires mais il peut très bien tirer 4,12,4,26 , j'en cherche 4 différents

Re: PHP5 : 4 nombres aleatoires et differents

par Dr@ke » 28 févr. 2010, 23:20

Fonction rand() ou mt_rand(), avec un intervalle différent pour les 4?
http://php.net/manual/fr/function.rand.php
http://www.php.net/manual/fr/function.mt-rand.php

PHP5 : 4 nombres aleatoires et differents

par jehanon » 28 févr. 2010, 22:56

Bonjour

Connaissez vous une méthode astucieuse pour tirer 4 nombres aléatoires de 1 à 100 et tous différents ?

merci