Anonimo
Anonimo ha chiesto in Computer e InternetProgrammazione e Design · 1 decennio fa

Generatore di numeri casuale in C#?

In pratica dovrei fare una cosa del genere:

Random RandomClass = new Random();

int RandomNumber = RandomClass.Next(1, 4);

Ora vorrei sapere:

Come faccio a determinare ad esempio che c'è il 20% di possibilità che esca 1 e 45% che esca 2?

Aggiornamento:

Vabbe allora facciamo così. Dati dei numeri,posso dare loro delle probabilità in percentuale di essere atampati a video o di essere usati in altre operazioni?

2 risposte

Classificazione
  • 1 decennio fa
    Risposta preferita

    Ma la probabilità che esca 1 o 2 o 3 è uguale ed è il 33,3% (sarebbe 33,333333 ecc..)! Quindi non ha senso quello che vuoi fare. Un'altra cosa sarebbe invece analizzare quanto volte è uscito l'1 o il 2 o il 3, cosa che fai dopo che i numeri sono usciti...facendo un'analisi sui risultati.

  • Anonimo
    1 decennio fa

    Per primo sto codice fa (non offenderti) schifo. Non so chi ti abbia insegnato mettere variabili di valore o riferimento con la lettera maiuscola ma è assolutamente vietato (lo vietano regole di .NET Framework poi dipende da te se ti adegui o no). In pratica ogni variabile deve cominciare con la lettera minuscola e ogni altra parola in essa presenta con la maiuscola. Quindi per piacere randomClass (classeRandom mi piace di più, siamo italiani), e randomNumber. Da quanto ho capito vuoi generare un numero casuale e poi determinare quale era la possibilità che usciva un altro (o esso stesso). Molto semplice. Se il valore massimo dato nei argomenti del metodo Next della classe Random è 4 e quello minimo è 1 vuoldire che i numeri generabili sono 3: 1,2,3 e quindi fai una semplicissima operazione matematica (se minValue è 1 naturalmente, se no dopo devi aggiungerci la differenza): 100/3 che fa 33,3333... e questo è il percento che esca o 1 o 2 o 3!

    E dimenticavo. Pseudo casuali non vuol dire casuali ma quasi casuali. Nella macchina non può mai esserci qualcosa di casuale. Quindi prende il secondo e millisecondo dal timer del computer, fa una serie di operazioni, e scrive il numero (quasi) casuale sullo schermo. Se vuoi determinare che esso esca, non ci riesci (almeno che tuo cervello non faccia 15000 operazioni al secondo) e quindi l'unico modo per determinare se esce uno o altro e divider numero delle possibilità per 100. Oppure se ci tieni creare una classe che si comporta come Random, e determinare quale numero uscirà al 100% in teoria può andare, ma in pratica è inutile…

Altre domande? Fai una domanda e ottieni le risposte che cerchi.