» »

VBA Poissonova razporeditev

VBA Poissonova razporeditev

mihibo5 ::

Pozdravljeni,
v VBA moram narediti program, ki za števila 1-100 s parametrom 1,5 izračuna verjetnosti zbirnih funkcij.

Module Module1

    Sub Main()

        Dim value(100) As Double
        For X As Integer = 1 To 100

            Dim r As Double = 0
            For k As Integer = 0 To X
                r += ((Math.Pow(Math.E, -X) * (Math.Pow(X, k))) / (factorial(X)))
            Next
            Console.WriteLine(r)
        Next

            Console.WriteLine(1 * Math.Log10(1.5))
        Console.ReadKey()

    End Sub


    'Function which calculates the factorial value of number n'
    Public Function factorial(n As Integer) As Integer
        Dim r As Integer = 0

        For i As Integer = 1 To n
            r *= i
        Next
        Return r

    End Function

End Module


V Javi za prvi dve števili dobim rezultat dvakrat premajhen, kasneje se ta razlika še bolj spremeni, tukaj pa Infinity za vsa števila. Rezultati bi morali priti:

1 - 0,735758882
2 - 0,40600585
3 - 0,149361205
4 - 0,073262556
5 - 0,033689735
6 - 0,014872513
7 - 0,006383174
8 - 0,002683701
9 - 0,001110688
10 - 0,000453999
11 - 0,000183719
12 - 7,37305E-05
13 - 2,93843E-05
14 - 1,16414E-05
15 - 4,58853E-06
16 - 1,80056E-06
17 - 7,03789E-07
18 - 2,7414E-07
19 - 1,06453E-07
20 - 4,12231E-08
... do sto

Hvala za odgovore.

amacar ::

Tule
Dim r As Integer = 0
 
        For i As Integer = 1 To n
            r *= i
        Next
        Return r

množiš 0*cifre od 1-n, zato je rezultat vedno 0

tu
r += ((Math.Pow(Math.E, -X) * (Math.Pow(X, k))) / (factorial(X)))

potem deliš z 0, ki ga vrne prejšnja funkcija od tu infinity

Pa tudi računati fakulteto z integerji ti ne bo šlo, boš hitro overflowal.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

C# program za pretvorbo v desetiško število z rekurzijo

Oddelek: Programiranje
81479 (1202) MrStein
»

[C#] Operacija IN in ALI med dvema int številoma

Oddelek: Programiranje
111169 (982) LeQuack
»

[C#] Input string was not in a correct format.

Oddelek: Programiranje
61083 (1020) Cvenemir
»

Java Objekti

Oddelek: Programiranje
102249 (1943) Mavrik
»

[Naloga] Eulerjevo število

Oddelek: Programiranje
233102 (2454) gani-med

Več podobnih tem