![]() |
![]() |
![]()
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
![]() 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 ![]() Ten post edytował olszam 25.02.2014, 16:34:37 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 05:14 |