exel generazione di numeri casuali

Anonimo
2016-03-01T19:39:01+00:00

buonasera,

dovrei generare 110 numeri casuali compresi tra  un massimo (0.020) e un minimo (0.010) che abbiano in totale una media pari a 0.015.

qualcuno sa come potrei fare? grazie

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2016-03-02T08:18:55+00:00

Ciao sm910004,

dovrei generare 110 numeri casuali compresi tra  un massimo (0.020) e un minimo (0.010) che abbiano in totale una media pari a 0.015.

qualcuno sa come potrei fare? grazie

hai provato a vedere questo thread:

http://answers.microsoft.com/it-it/office/forum/office\_2007-excel/generare-numeri-casuali-distribuzione-uniforme/08322908-3003-4a21-bc11-960a3792850c?db=5

Saluti,

A.

La risposta è stata utile?

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2016-03-02T08:18:39+00:00

Ciao sm910004,

dovrei generare 110 numeri casuali compresi tra  un massimo (0.020) e un minimo (0.010) che abbiano in totale una media pari a 0.015. 

qualcuno sa come potrei fare? grazie

Per ottenere una media esattamente pari a 0.015 potrebbe richiedere molto tempo! Per ottenere valori casuali con una media pari a 0.015 ± 0.0001, prova qualcosa del genere:

  • Alt+F11 per aprire l'editor di VBA
  • Alt+IM per inserire un nuovo modulo di codice
  • Nel nuovo modulo vuoto, incolla il seguente codice:

'=========>>

Option Explicit

'--------->>

Public Sub Tester()

    Dim WB As Workbook

    Dim SH As Worksheet

    Dim destRng As Range

    Dim arrIn() As Variant

    Dim dVal As Double, dSum As Double

    Dim i As Long

    Const dTolleranza As Double = 0.0001                              '<<=== Modifica

    Set WB = ThisWorkbook

    Set SH = WB.Sheets("Foglio1")                                           '<<=== Modifica

    Set destRng = SH.Range("A1:A110")

    ReDim arrIn(1 To 110)

    Do

        dSum = 0

        Randomize

        For i = 1 To 110

            dVal = Int((200 - 100 + 1) * Rnd + 100) / 10000

            arrIn(i) = dVal

            dSum = dSum + arrIn(i)

        Next i

    Loop Until Abs(0.015 - (dSum / 110)) < dTolleranza

    destRng.Value = Application.Transpose(arrIn)

End Sub

'<<========= 

  • Alt+Q per chiudere l'editor di VBA e tornare a Excel
  • Salva il file con l’estensione xlsm
  • Alt+F8 per aprire  la finestra di gestione delle macro
  • Seleziona Tester | Esegui

Potresti scaricare il mio file di prova SM20160302.xlsm a:

https://www.dropbox.com/s/uwyzyo8pauo6ofj/SM20160302.xlsm?dl=0

===

Regards,

Norman

La risposta è stata utile?

0 commenti Nessun commento

7 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2016-03-07T05:24:26+00:00

    Ciao sm910004,

    Grazie a te per il cortsese riscontro.

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento