Domanda

Devo generare due serie casuali di matrici Ciascuno contenente 3 cifre che vanno da 2 a 10

così

matrice 1: 994.878.129.121

matrice 2: 272.794.378.212

i numeri in entrambe le matrici devono essere maggiori di 100 e inferiori a 999

MA

la media per entrambe le matrici deve essere nel rapporto di 1: 2 o 2: 3 che vincoli mai gli input dell'utente

le mie abilità matematiche sono in qualche modo limitate, quindi qualche idea su come posso farlo?

È stato utile?

Soluzione

Per fare ciò, devi sapere quanti numeri ci sono in ogni lista. Presumo dal tuo esempio che ci siano quattro numeri in ciascuno.

  1. Compila il primo elenco con quattro numeri casuali.
  2. Calcola la media del primo elenco.
  3. Moltiplica la media per 2 o per 3/2, qualunque sia l'input dell'utente. Questa è la media richiesta del secondo elenco.
  4. Moltiplica per 4. Questo è il totale richiesto del secondo elenco.
  5. Genera 3 numeri casuali.
  6. Sottrai il totale dei tre numeri nel passaggio 5 dal totale nel passaggio 4. Questo è il quarto numero per il secondo elenco.
  7. Se il numero nel passaggio 6 non è compreso nell'intervallo corretto, ricominciare dal passaggio 5.

Nota che l'ultimo numero nel secondo elenco non è veramente casuale, poiché si basa sugli altri valori nell'elenco.

Altri suggerimenti

Hai una serie di numeri casuali, s1.

s1= [ random.randint(100,999) for i in range(n) ]

Per alcuni altri set, s2, per avere una media diversa è sufficiente avere un intervallo diverso. O selezioni i valori in modo casuale da un intervallo diverso oppure filtri i valori casuali per ottenere un intervallo diverso.

Indipendentemente dal numero di casuali selezionati tra 100 e 999, la media è sempre di circa 550. Le probabilità di essere un valore diverso sono esattamente le normali probabilità di distribuzione su entrambi i lati di la media.

Non puoi avere una media radicalmente diversa con valori selezionati dallo stesso intervallo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top