Go Down

Topic: Simulazione roulette (Read 1 time) previous topic - next topic

Stilita

#30
Apr 04, 2019, 02:02 pm Last Edit: Apr 04, 2019, 02:11 pm by Stilita
E' un esercizio, so bene che i dadi, la roulette o il lotto non hanno memoria, e l'ho già scritto nei precedenti post.
Se c'era un modo per arricchirsi l' avreste già trovato voi che siete bravi.
Poi se uno arriva fresco fresco e si fa la risatina senza leggere tutto il problema è suo
la risatina è offensiva sia nei miei confronti che nei confronti di chi ha speso tempo e "digitazione" per rispondermi in modo costruttivo...e quindi  la risatina me la faccio io per la sua superficialità.:)

...non sapete quanto ho cercato...pfui pfui
prima di rivolgermi al forum...

Patrick_M

lol ... secondo me non arrivi da nessuna parte... :)
guarda che sono stato il primo a darti una risposta seria sul perchè il tuo programma non funzionava... vedi post #4 ;)

quindi mi sento preso in giro da me stesso :D
per inserire (lo sketch) il programma, dall'IDE clicca modifica, clicca copia per il forum poi vieni qui e incolla nel tuo post (ctrl+v) ;)

Stilita

#32
Apr 05, 2019, 11:30 am Last Edit: Apr 05, 2019, 11:38 am by Stilita
Ora parlo solo dell'aspetto programmazione, lascio stare giochi dadi ecc per non alimentare risposte
OT.

Non commento la libreria di leo72, ma noto che con essa quasi sempre un numero il  36( non della roulette,  ma di una ipotetica simulazione didattica)  ha un risultato  diverso dagli altri, molto più alto.
Mentre con i metodi comuni, i risultati sono più omogenei.
...non sapete quanto ho cercato...pfui pfui
prima di rivolgermi al forum...

Standardoil

Intendi come ritardo massimo o cosa?
Prima legge di Nelson (che sono io): Se vuoi il mio aiuto dimostrami almeno che hai letto il nostro "aiutateCi ad aiutarVi"

Non bado a studenti, che copino altrove

Tu hai problema-Io ti domando-Tu non mi rispondi: vuol dire che non ti serve più

gpb01

#34
Apr 05, 2019, 12:25 pm Last Edit: Apr 05, 2019, 12:25 pm by gpb01
Non commento la libreria di leo72, ma noto che con essa quasi sempre un numero il  36 ...
La libreria di Leo fornisce:
1. un byte (0..255)
2. un unsiged int  (0..655353)
3. un unsigned long (0..4294967295)
... quale di questi hai usato e come lo hai mappato?

Guglielmo
Search is Your friend ... or I am Your enemy !

Standardoil

Un minimo di analisi prima...
Renderebbe evidente gli errori di usare aritmetica intera...
Prima legge di Nelson (che sono io): Se vuoi il mio aiuto dimostrami almeno che hai letto il nostro "aiutateCi ad aiutarVi"

Non bado a studenti, che copino altrove

Tu hai problema-Io ti domando-Tu non mi rispondi: vuol dire che non ti serve più

Stilita

Rispondo a tutti:
si, come ritardo massimo
un byte (0..255)
rnd = map(rnd, 0, 255, 0, 36)


ora provo a portare il limite da 1 a 100 numeri, e voglio vedere se il 100( cioè l'ultimo)  ha lo stesso strano risultato.
Inotre farò uno schetch sulle frequenze  invece che sui ritardi, sempre a scopo didattico.
...non sapete quanto ho cercato...pfui pfui
prima di rivolgermi al forum...

Standardoil

Di guardare le frequenze Te lo avevo detto nel post 25...
Prima legge di Nelson (che sono io): Se vuoi il mio aiuto dimostrami almeno che hai letto il nostro "aiutateCi ad aiutarVi"

Non bado a studenti, che copino altrove

Tu hai problema-Io ti domando-Tu non mi rispondi: vuol dire che non ti serve più

Stilita

#38
Apr 05, 2019, 01:38 pm Last Edit: Apr 05, 2019, 02:13 pm by Stilita
Di guardare le frequenze Te lo avevo detto nel post 25...

Si le frequenze le elaborai tempo fa usando come "rimestatore" della random 2 metodi, quella di leggere
un ingresso analogico, o quello della millis(),  ed entrambi mi davano una buona omogeneità, che diventava
sempre migliore aumentando il numero di cicli, com'è noto.
Ora, dicevo, voglio testare questo nuovo metodo...anzi già fatto, riporto lo schetch.
Una cosa non mi è chiara, forse è quì l'errore, alla riga 3 dichiaro la variabile da 100, e alla fine del conteggio alla frequenza del numero 100 mi mette 1000, che è il numero di iterazioni, se invece dichiaro 101 va tutto bene...

Code: [Select]
#include "pRNG.h"
pRNG prng;
int x[100];
int c;
int rnd;
void setup() {
  Serial.begin(9600);
}
void loop() {
  c++;
  if (c == 1000) {
    fine();
  }
  rnd = prng.getRndByte();
  rnd = map(rnd, 0, 255, 1, 100);
  x[rnd]++;
}
void fine() {
  for (int v = 1; v <= 100; v++) {
    Serial.print(v); Serial.print("  "); Serial.println(x[v]);
  }
}
...non sapete quanto ho cercato...pfui pfui
prima di rivolgermi al forum...

gpb01

Se dichiari un vettore di 100 elementi ... l'ultimo è 99 NON 100 !!!

Guglielmo
Search is Your friend ... or I am Your enemy !

Claudio_FF

#40
Apr 06, 2019, 08:33 am Last Edit: Apr 06, 2019, 08:34 am by Claudio_FF
Il mio dubbio su quella libreria è: siamo sicuri che la distribuzione sia *uniforme*? È molto importante. È perfino troppo semplice ottenere valori casuali da segnali hardware, ma con distribuzioni gaussiane. Diverso è il caso se serve solo generare un seme iniziale random.
********* IF e SWITCH non sono cicli ! *********
**** Una domanda ben posta è già mezza risposta ****
*** La corrente si misura in mA, la quantità di carica in mAh ***

gpb01

... Se mi ricordo come funziona la map() essa restituisce 36(in questo caso) per tutti i numeri maggiori di 36 ....
... ricordi male:

Code: [Select]
long map(long x, long in_min, long in_max, long out_min, long out_max)
{
  return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}

Guglielmo
Search is Your friend ... or I am Your enemy !

Silente

Dove va un numero va una variabile, una funzione e/o  un test.
Per ottenere devi spiegare

Strumenti/Formattazione automatica fino alla morte!
Cristianesimo:bibbia='C':K&R

Go Up