CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[PHP] Variable 'aléatoire'

LoneEagle
LoneEagle
Niveau 6
16 janvier 2008 à 10:36:30

Salut.
Je cherche à faire évoluer une variable "aléatoire" en tenant compte d´une certaine probabilité.

Je prends un exemple. Je choisis un intervalle [15;75]. Ma variable aléatoire t sera comprise dans cet intervalle.
Toutefois, je souhaiterais que ma variable aléatoire ait 5% de chances d´être égale à 15 et 15% d´être égale à 75. La probabilité entre 15 et 75 évolue dans l´ordre croissant, comme l´illustre ce shéma :
http://pix.nofrag.com/3/9/d/3ebb663f4d0c11ad3505f20a3de74.html

Je ne sais pas comment m´y prendre pour modéliser cette fonction en PHP. Pouvez vous m´aider ? :) Merci d´avance ^^

deepblue
deepblue
Niveau 16
16 janvier 2008 à 11:53:10

en methode "bourrine" : tu construits un array de 100 valeurs, 5 seront égales à 15, 15 égale à 75 (tu fais la meme chose pour les autres nombres) et ensuite tu utilises array_rand();

godrik
godrik
Niveau 30
16 janvier 2008 à 16:46:48

tu veux dire que tu ne veux pas pouvoir generer 16 ou 15.5 ?

dnob700
dnob700
Niveau 10
16 janvier 2008 à 19:30:59

Si tu veux effectivement générer des valeurs discrète la méthode de deepblue est peut-être "bourrine" mais efficace (je ne sais pas ce que fait array_rand(), mais il faut lire une valeur au hasard dans ton tableau en utilisant un indice tiré entre 1 et 100 avec une répartition constante (donnée par la fonction rand() du langage je suppose)).

deepblue
deepblue
Niveau 16
16 janvier 2008 à 21:35:30

array_rand sort un ou plusieurs de clefs d´un array :
http://fr2.php.net/manualual/fr/function.array-rand.php

godrik
godrik
Niveau 30
17 janvier 2008 à 00:06:36

une solution qui consomme moins de mémoire consiste a faire deux tableaux:
proba et valeur ayant la sémantique suivante:
proba[i] pourcent des tirages ont une valeures inférieur a valeur[i]
en tirant une valeure aléatoire entre 1 et 100, on peut alors faire une recherche dichotomique sur proba et ainsi trouvé la valeur correspondante dans le tableau valeur.

comparatifs entre les deux méthodes.
1 ere méthode:
taille du tableaux: précision du tirage aléatoire (ici 100)
complexité de la recherche: 1 tirage + 1 consultation dans un tableau
2 eme méthode:
taille du tableaux: nombre de valeure différentes (ici 12)
complexité de la recherche: 1 tirage + log de taille du tableau consultations (ici, de l´ordre de 4)

il y a peut etre plus intelligent, masi c´est pas bien sur...

LoneEagle
LoneEagle
Niveau 6
17 janvier 2008 à 15:56:58

Hum le problème c´est que je n´ai pas de connaissances faramineuses en PHP. Je crois que je vais prendre la méthode de deep´ par contre oui ça va faire un peu bourrin :o))

Merci beaucoup en tout cas c´est gentil de m´aider :)

Sous forums
  • Aide à l'achat Mac
  • Internet
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment