Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    Calcolo probabilità in random

    Salve ha tutti, ho una piccola questione da risolvere.
    Ho due valori che si sommano e danno un risultato e vorrei che mi trasformi in percentuale di riuscita di un determinato evento random.

    Codice PHP:
    //Prendo i parametri
    $x=8;
    $y=8;
    //li sommo
    $n=$x+$y;
    //evento random
    $result=rand(-1,20) %$n;

    echo 
    $result
    In pratica vorrei fare in modo che se il valore $n aumenta, aumenta la probabilità di fare un nuomero alto nel random, se inferiore sarà più difficile avere valori alti.
    Ma come l'ho fatto io mi avviene una divisione :master:

    Qualcuno sa come si fa?

  2. #2

  3. #3

  4. #4
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012

    Re: Calcolo probabilità in random

    Originariamente inviato da Brascka
    Salve ha tutti, ho una piccola questione da risolvere.
    Ho due valori che si sommano e danno un risultato e vorrei che mi trasformi in percentuale di riuscita di un determinato evento random.

    Codice PHP:
    //Prendo i parametri
    $x=8;
    $y=8;
    //li sommo
    $n=$x+$y;
    //evento random
    $result=rand(-1,20) %$n;

    echo 
    $result
    In pratica vorrei fare in modo che se il valore $n aumenta, aumenta la probabilità di fare un nuomero alto nel random, se inferiore sarà più difficile avere valori alti.
    Ma come l'ho fatto io mi avviene una divisione :master:

    Qualcuno sa come si fa?
    beh prima devi impostarti un numero che funga da 0, quindi se il risultato è superiore al numero lo incrementa

    es.:

    Codice PHP:

    <?
    extract
    ($_GET);

    $result=probability($min,$max,$n);

    echo 
    "<pre>";
    print_r($result);

    function 
    probability($min,$max,$cicles)
      {
      
    $int=$min+$max;
      
    $middle=$int/2// la metà della somma funge da 0 per up e down
      
    echo $middle."
    "
    ;
      
    $down=0;
      
    $up=0;
      for ( 
    $n 1$n <= $cicles$n++ )
        {
        
    $generated=rand($min,$max);
        
    //echo $generated."
    ";
        if ( 
    $generated > $middle$up++;
        else 
    $down++;
        }
      
    $result=array();
      
    $result['min']=$min;
      
    $result['max']=$max;
      
    $result['down']=$down;
      
    $result['up']=$up;
      
    $result['perc_up']=number_format( 100/($cicles/$up),2,".","");
      
    $result['perc_down']=number_format(100-$result['perc_up'],2,".","");
      return 
    $result;
      }
    ?>
    pagina.php?min=300&max=39762534&n=18721
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  5. #5
    Grazie della risposta ero in attesa crescente di una soluzione
    Lo proverò e ti farò sapere, ma ha occhio credo che ci siamo su quello che avevo in mente

  6. #6
    Ok il codice fa proprio la statistica dando un valore alto o basso a seconda del valore che gli viene dato.
    Ma dovrei obbligare i valori nel restare tra -1 e 20 in modo se ce un valore basso è difficile che si arriva a 20 mentre se e alto a più probabilità di fare un 20
    Quindi come si può modificare il codice per ottenere quello che mi serve?

  7. #7

  8. #8
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012

    non ho capito bene bene bene bene ....

    mi potresti fare un esempio pratico?
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  9. #9
    strana faccenda, curioso di sapere di che tipo sono questi valori

    il min e il max li imposti tu in min e max, diciamo
    $min=-1;
    $max=20;
    $n invece lo facciamo uscire fuori a seconda del tipo di oggetto che dobbiamo rappresentare

    ci dici probabilisticamente di che si sta parlando?

  10. #10
    Grazie per l'intervento
    Allora io devo fare in modo che prendendo dei valori che cambiano a dipendenza di un utente registrato, si possa avere più probabilità che avvenga in random un numero alto verso il 20 se ovviamente a dei valori alti cioè in questo modo:

    Codice PHP:
    //Prendo il valore dell'avatar del registrato
    $forza=5;
    $destrezza=4;
    //sommo i valori
    $tot=$forza+$destrezza;
    //qui ci deve essere un qualcosa che dica al random di eseguire in percentuale maggiore verso il 20
    $result=mt_rand(-1,20) %$tot;
    //ovviamente me lo vede come modulo e non come percentuale di probabilità che in questo caso darebbe 9 quindi il 9% di poter fare un 20 
    In pratica dovrebbe essere come il discorso delle macchinette dette anche slot machines
    Solo che qui non centra nulla con il lucro, e solo un gioco di ruolo al quale sto migliornado molte cose, ma non arrivo a tutto.
    Si può fare qualcosa?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.