Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> przerobienie kodu pythona do js
olszam
post
Post #1





Grupa: Zarejestrowani
Postów: 342
Pomógł: 23
Dołączył: 20.01.2011
Skąd: Chełm

Ostrzeżenie: (0%)
-----


Mam do przerobienia kod pythona do js jest prawie wszystko gotowe ale nie mogę się doszukać gdzie błąd robię przy zliczaniu "średniej długości kolejki" wiem tylko że suma często na minusie mi się zwraca. Na dzisiaj mi jest potrzebne przed 23:00 sad.gif .
kod pythona
Kod
from random import *
import random

T=1000 #input("Podaj długość symulacji: ");
p=0.1 #input("Podaj prawdopodobieństwo przyjścia pakietu: ");
K=5 #input("Podaj pojemność urządzenia: ");
m=3 #input("Podaj czas obsługi pakietu: ");
N=100 #input("Podaj liczbę powtórzeń: ");

tab=[0 for k in range(K)]
utraconePakiety=0
wszystkiePakiety=0
suma=0
buf=0
m1=m
s=0


wykorzystanie=0

for i in range(N):
    for j in range(T):
        if random.random()<=p:          
            wszystkiePakiety=wszystkiePakiety+1
            if buf<K:
                buf=buf+1
                tab[s]=9
                s=s+1
                
            elif buf>=K:
                utraconePakiety=utraconePakiety+1
            
                
        if tab[0]==9:
            wykorzystanie=wykorzystanie+1
            m1=m1-1
            if m1==0:
                m1=m
                buf=buf-1
                for l in range (K):
                    if buf==0:
                        tab[0]=0
                    elif l<buf:
                        tab[l]=tab[l+1]
                    
                s=s-1

        suma=suma+buf
        float(suma)
    for s in range(K):
        tab[s]=0
    s=0
    buf=0
    m1=m

c=N*T
float(c)
dl=0
dl=float(suma/float(c))
wyk=float(100*wykorzystanie/float(c))
utr=float(100*utraconePakiety/float(wszystkiePakiety))

print "Utracone: ",utraconePakiety
print "Wszystkie: ",wszystkiePakiety
print "Szansa utraty: ",utr,"%"
print "Średnia długość kolejki: ",dl
print "Wykorzystanie urządzenia: ",wyk,"%"


kod js
Kod
var T = 1000;
var p = 0.1;
var K = 5;
var miz = 3;
var N = 100;
var array = new Array(K);
for(var i = 0; i < K; i++)
{
array[i]=0;
}

var lostPakiet=0,allPakiet=0, suma=0, zmienna=0, miz1=miz, g=0, used=0;

for (var i = 0; i<N; i++)
{
    for(var j = 0; j<T; j++)
    {
        
        if(Math.random() <= p)
        {
        allPakiet=allPakiet+1;
            if(zmienna < K)
            {
                zmienna=zmienna+1;
                array[g]=9;
                g=g+1;
            }
            else if(zmienna>=K)
            {
                lostPakiet=lostPakiet+1;
            }
        }
        if(array[0]==9){
            used=used+1;
            miz1=miz1-1;
            if (miz1==0){
                miz1=miz;
                zmienna=zmienna-1;
                for(var z = 0; z<K; z++)
                {
                    if (zmienna==0)
                    {
                        array[0]=0;
                    }
                    else if (z<zmienna)
                    {
                        array[z]=array[z+1];
                    }
                }    
                g=g-1;
            }
        }
        var suma=suma+zmienna;
    }
    for(g; g<K;g++)
    {
        array[g]=0;
    }
    g=0;
    zmienna=0;
    miz1=miz;
}

var c=N*T;

var dl=suma/c;
var wyk=100*used/c;
var utr=100*lostPakiet/allPakiet;

document.getElementById('wynik').innerHTML = "Utracone: "+lostPakiet+
"\nWszystkie: "+allPakiet+
"\nSzansa utraty: "+utr+
"% \nWykorzystanie urządzenia: "+wyk+
"% \nŚrednia długość kolejki: "+dl;



[edit]
dobra nie trzeba już, ślepy jak kret jestem żeby tej linijki nie zauważyć for(g; g<K;g++), g=0 dopisać musiałem smile.gif

Ten post edytował olszam 25.02.2014, 16:34:37
Go to the top of the page
+Quote Post

Posty w temacie
- olszam   przerobienie kodu pythona do js   25.02.2014, 16:34:18


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 05:14