PHP matematisk spørgsmål.

Tags:    programmering

Hejsa. Jeg vil gerne lave en tabel, som skal vise hvor meget trafik ens spil server kræver om måneden.


Jeg kan se at én spiller modtager op til 12.5Kb/s og sender ca. 10Kb/s.

Hvordan kan jeg få det omregnet til én måneden med 31 dage?



Hejsa. Jeg vil gerne lave en tabel, som skal vise hvor meget trafik ens spil server kræver om måneden.


Jeg kan se at én spiller modtager op til 12.5Kb/s og sender ca. 10Kb/s.

Hvordan kan jeg få det omregnet til én måneden med 31 dage?


Der er 60 sekunder på et minut.
Der er 60 minutter på en time.
Der er 24 timer på en dag.
Der er 31 dage på "den" måned:

Så:
Spilleren modtager:
12.5 * (60*60*24*31) eller:
12.5 * 2678400 = 33480000Kb = 33,5Gb

Om måneden.





Indlæg senest redigeret d. 14.07.2009 16:38 af Bruger #14645
Tjah,

12.5Kb/s (antaget at 1 Kb = 1024 bytes og ikke 1 Kb = 1000 bytes) - dvs. 12.5 Kb per sekund. Du vil gerne have hvor mange bytes (må det så være Kilo, Mega, Giga) per måned antaget denne hastighed - så første problemstilling er at finde ud af hvor mange sekunder der går på en måned bestående af 31 dage.

Fold kodeboks ind/udKode 


herefter er dette ganske simpelt:

Fold kodeboks ind/udKode 


Dette giver sikkert et rimelig højt tal og du kan nok med fordel lave det om til følgende:

Fold kodeboks ind/udKode 


En sidste ting er så den matematiske / fysiske forklaring på at alt dette passer.

Hvis vi går væk fra at regne med tal, men i stedet regner med "enheder", dvs. bytes og sekunder:

Kb/s = 1024b/s

Vi ønsker nu at lave divisoren om til f.eks. minutter

1024b/s * 60s/m = 61440(b*s)/(s*m)

Dette følger ganske almindelige brøk-regneregler, ganger du to brøker med hinanden ganger du tæller med tæller og nævner med nævner (isoleret set på enhederne). Hvis vi omskriver denne obskure enhed til nedenstående:

(b*s)/(m*s)

Så vil vi se at både tæller og nævner ganger med s, dvs. dette forlænger blot brøken og vi kan udelade dette så har vi

b/m

Så nu har vi

61440b/m

Hvor b er bytes og m er minutter. Før dette trin igennem igen og igen og så er du ved vejs ende.

Hvis matematik er sort snak for dig, så tag blot kode eksemplerne.



Tak for jeres svar! Jeg smider det direkte i mit script og konfigurere hvordan det skal vises med det samme! Tusinde tak :)


Ps. Matematik er ikke min gode side.

Hvordan kan jeg få det skrevet op, hvis der nu er 5 spillere? Hvor skal jeg gange med 5 henne?

Eller x antal spillere, det bliver indtastet af en bruger.



Indlæg senest redigeret d. 14.07.2009 16:50 af Bruger #15047
(en anden lille ting, jeg først så nu, er 12Kb/s Kilobytes eller Kilobit? Hvis det er bit, så skal du dividere det hele med 8 for at få det i bytes)

Magnus - hvis du har tallet for 1 spiller og du gerne vil have det for 5 spillere, så ganger du blot dit "magiske" tal med 5. Multiplikation (fancy ord for at gange) har den herlighed at det er fuldstændig lige meget hvilken rækkefølge det sker i, dvs:

2*3*4 = (2*3)*4 = 6 * 4 = 24
4*2*3 = (4*2)*3 = 8 * 3 = 24
3*4*2 = (3*4)*2 = 12 * 2 = 24
osv...

Så du kan gange i starten, til sidst, eller hvor du ønsker - det betyder ingenting.



math.php
Fold kodeboks ind/udKode 



index.html
Fold kodeboks ind/udKode 



Fordi det den skulle skrive ud på math.php siden bliver IKKE vist. :(

Er de gyldige?






Indlæg senest redigeret d. 14.07.2009 17:18 af Bruger #15047
$_POST['PlayerInput'] = $Players;

Skal være:

$Players = $_POST['PlayerInput'];

Ellers overskriver du den variabel der kom fra din post.



Den har jeg også prøvet, den virkede ikke. :(



Prøv:

Fold kodeboks ind/udKode 


Og ret de steder du har skrevet:
echo "<br";
Til:
echo "<br/>";

Og hvis ovenstående rettelse ikke har virket så skriv tilbage hvad de echoer viser.



Indlæg senest redigeret d. 14.07.2009 19:14 af Bruger #14645
Nu virker det, tusinde tak! :)



t