< návrat zpět

MS Excel


Téma: náhodná čísla rss

Zaslal/a 28.3.2011 18:07

Dobrý den

Mohl by mi někdo prosím poradit s vytvořením funkce, tedy jestli to jde... Jsem začátečník a tohle je nad mé síly.

Mám následující úkol: Mám ZADANÉ číslo X. Toto číslo je průměrem souboru sta náhodně generovaných čísel, teré musí být v intervalu Y,Z.

Tedy například mám třeba číslo 10 a k němu náhodně vygenerovat 100 čísel v intervalu od 5 do 15 tak, aby bylo průměrem těchto čísel právě 10.

Abych řekl pravdu, nemám ani tušení jak tuto funkci vytvořit...

Předem děkuji za odpověď 2

Zaslat odpověď >

#004460
avatar
Možná toto:
Popis parametrů je v sub GenerujRand, ukládá dolů do řádků od aktivní buňky.

Sub Náhodné()
Call GenerujRand(10, 0, 5, 15, 100)
End Sub
Sub GenerujRand(StředníHodnota, PočetDesetinnýchMíst, DolníHranice, HorníHranice, PočetNáhodnýchČísel)
Dim Pole() As Double, Suma As Double
Dim j As Integer
ReDim Pole(PočetNáhodnýchČísel) As Double
For i = 1 To PočetNáhodnýchČísel
Pole(i) = Int(((HorníHranice * 10 ^ PočetDesetinnýchMíst - DolníHranice * 10 ^ PočetDesetinnýchMíst + 1) * Rnd + DolníHranice * 10 ^ PočetDesetinnýchMíst))
Suma = Suma + Pole(i)
Next i
i = 1
If Suma > StředníHodnota * PočetNáhodnýchČísel * 10 ^ PočetDesetinnýchMíst Then i = -1
Do Until Suma = StředníHodnota * PočetNáhodnýchČísel * 10 ^ PočetDesetinnýchMíst
j = Int(PočetNáhodnýchČísel * Rnd + 1)
If i = 1 Then
If Not Pole(j) = HorníHranice * 10 ^ PočetDesetinnýchMíst Then
Pole(j) = Pole(j) + i
Suma = Suma + i
End If
Else
If Not Pole(j) = DolníHranice * 10 ^ PočetDesetinnýchMíst Then
Pole(j) = Pole(j) + i
Suma = Suma + i
End If
End If
Loop
For i = 1 To PočetNáhodnýchČísel
ActiveCell.Offset(i - 1, 0) = Pole(i) / (10 ^ PočetDesetinnýchMíst)
Next i
End Sub

citovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Aktivní diskuse