Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
sfat achizitie telefon pana in 20...

Stoc Smart CAM TV

Ce corzi de chitara sa cumpar?

Galaxy A54 compass defect?
 Cum conectez un switch WIFI la 60...

Cumparare AC Gree [Buget maxim 30...

Telekom

Ce e aratarea asta ?
 Probleme timonerie schimbator sau...

Numar strada gresit in contractul...

Centrala Ariston Cares Premium 24...

La multi ani @Klasse!
 La multi ani @shmecherul!

pareri ipad 6-2018- flip

Cum au aparut supermarketurile in...

Campanii mincinoase Carrefour
 

Numarare in functie de timestamp

- - - - -
  • Please log in to reply
11 replies to this topic

#1
BIT2GB

BIT2GB

    Junior Member

  • Grup: Members
  • Posts: 106
  • Înscris: 07.11.2011
Salutare dupa cum spune si titlu doresc sa fac o medie a persoanelor care s-au conectat intr.o ora in baza conectarilor din ultima saptamana si as vrea sa va intreb daca este corect din pct de vedere matematic in primul rand ceea ce am facut:
//medie playeri conectati intr-o ora in functie de ultimele 7 zile
$now=time();
$last_w = time() - (7 * 24 * 60 * 60); // 7zile 24 ore 60 minute 60 secunde
$average = mysql_query("SELECT COUNT(timestamp) as total from user_snapshot where timestamp > '$last_w' AND timestamp < '$now' ");
$avg=mysql_fetch_array($average) ;
$term=7*24; //daca avem in 7zile.....300 de playeri conectati
	 //in 1zi......x deci x= nr de playeru/7=rez de playeri in 24 ore deci pt playeri in 1 ore avem rez/24
//final avg

<?php echo '<i class="fa fa-bar-chart-o"></i> '.$lang['1h_avg'].' '.round($avg['total']/$term).'';?>


Edited by BIT2GB, 27 February 2017 - 11:58.


#2
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,477
  • Înscris: 10.08.2005
Cine ti-a scris codul ?

Tu spui ca vrei media pe ora, si in comenturi spui clar, si calculezi pentru o zi.

Plus ca " $average " este o eticheta falsa,
$average = mysql_query("SELECT COUNT(timestamp)
mediea este egala cu numarul de elemente, suna corect nu?

Edited by MarianG, 27 February 2017 - 17:03.


#3
BIT2GB

BIT2GB

    Junior Member

  • Grup: Members
  • Posts: 106
  • Înscris: 07.11.2011
Eu cred ca spun clar si pt ora citeste cu atentie comentariile daca postezi.un.comentariu. am explicat cum obtin in 1 zi si dupa ca impart la 24 pt o ora. Codul.este scris de mine. Eticheta am pus.o asa pt ca un acel moment asa am considerat ok dar nu e relevant fata de intrebarea mea. Eu am intrebat total altceva si anume daca rationamentul matematic e corect si atat. Ca sa iti explic mai clar pt ca vad ca nu ai inteles sa presupunem ca count (timestam) este 300 pt conditiile puse .
Pt o ora rez=300/(7*24).
P.s. Tu nu ai raspuns la subiect!

Edited by BIT2GB, 27 February 2017 - 17:44.


#4
strongsss

strongsss

    Senior Member

  • Grup: Senior Members
  • Posts: 7,345
  • Înscris: 27.10.2007
nu te exprimi deloc coerent, nu se intelege ce vrei sa spui .
nici nu codifici corect , scrii average (media) si de fapt numeri (sau cel putin asa se intelege din cod)
de fapt problema este o regula de trei simpla, vrei o medie orara, calculata functie de nr de utilizatori din ultima saptamana.
media orara = (nr utilizatori intr-o sapatamana) / (7*24)

cum doamne iarta-ma aveti pretentii de programatori si nu sunteti in stare sa treceti de regula de 3 simpla ?

#5
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,254
  • Înscris: 24.02.2007

View PostBIT2GB, on 27 februarie 2017 - 11:49, said:

o medie a persoanelor care s-au conectat intr.o ora in baza conectarilor din ultima saptamana

Pune un exemplu de cum ai vrea sa arate un rezultat.

#6
BIT2GB

BIT2GB

    Junior Member

  • Grup: Members
  • Posts: 106
  • Înscris: 07.11.2011
Vaaai eu stiu ca is obosit da totusi:)) deci in average se salveata interogarea sql.
In avg se face fetch array pe average.
Avg[`total`] contine numarul total de timestamps care respecta conditia din interogare sql
Now este timpur curent la accesarea pagini
Last_w este data de acum o saptamanain rapirt cu data curenta.
Da e o regula de 3 simpla dar am aplicat.o corect?
Exemplu am dat mai sus dar repet:
$avg[total]=300 (sa presupunem)
Eu vreau sa fac un echo care imi spune ca in o ora am o medie de 5 playeri  referitor la datele culese in ultimele 7 zile
Mai clar nu cred ca mapot exprima

#7
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,477
  • Înscris: 10.08.2005
Ba da, dar nu vrei sa o faci in cod.

#8
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006
Codul prezentat de tine nu are nici in clin nici in maneca cu problema pe care spui ca vrei s-o rezolvi. Gandurile tale sunt la fel de haotice ca si codul - codul reflecta doar cat de haotic gandesti.

Deci vrei ceva de genul?

1 <?php
	 2
	 3 $distributionPerSeconds = [];
	 4
	 5 $days = 1;
	 6 $secondsInAnHour = 10;
	 7 $hoursInADay = 24;
	 8
	 9 $dataPoints = $days * $secondsInAnHour * $hoursInADay;
	10
	11 for($second = 0; $second < $dataPoints; $second++) {
	12	 $distributionPerSeconds[$second] = rand(0, 99);
	13 }
	14
	15 $hourlySlices = array_chunk($distributionPerSeconds, $secondsInAnHour);
	16
	17 $hourlySums = array_map('array_sum', $hourlySlices);
	18 $measuredNumberOfHours = count($hourlySums);
	19
	20 $sumOfSums = array_sum($hourlySums);
	21
	22 $average = $sumOfSums / $measuredNumberOfHours;
	23
	24 var_dump($hourlySums);
	25
	26 var_dump($average);


Oricum trebuie sa iterezi secundele, nu datele pe care le ai, pentru ca poti avea seconde fara utilizatori, caz in care suma e 0, si media pe ora tot 0.

Numeste-ti variabilele ca lumea, te ajuta sa gandesti mai clar.

#9
BIT2GB

BIT2GB

    Junior Member

  • Grup: Members
  • Posts: 106
  • Înscris: 07.11.2011
Haideti ca impreuna sa o luam pas cu pas. In baza de date cand useru x intra in tabela snapshot se salveaza un time impreuna cu un identificator unic, care indentificator ramane unic pt acea peroana cat timp el detine acelasi os si aceeasi aplicatie (fara reinstall)
Eu mai am o verificare care nu permite introducerea in db atata timp cat ultima conectare a avut loc in ultimele 5 minute.
Deci revenim, facem interogarea care nu poate returna altceva decat numarul total de conectari ale diferitilor useri ,care s.au conectat in intervalul dat de mine si anume in ultima saptamana in comparatie cu prezentul, corect? Eu cred ca da.
Urmatorul pas daca presupunem ca numarul total este 300 in ultima saptamana pentru a afla inte.o zi in medie cati s.au conectat impartim 300 la 7 si obtinem un r1. Corect? Eu cred ca da.
Urmatorul pas este de a afla cati useri s.au conectat intr.o ora in medie astfel ca impartim r1 la 24.
Rezultatul poate fi unul zecimal iar pt dragul artei si logica folosim round . Nu de alta dar nu se poate conecta 0.89 parti dintr.un om
Dupa round rezultatul e afisat.
Secunde de 0 nu vor putea exista. Va rog ca punctual sa imi explicati unde este lacuna in gandirea mea si de ce nu are "nici in clin nici in maneca" ceea ce am gandit eu exceptand notarea variabilelor.
Multumesc

#10
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,254
  • Înscris: 24.02.2007
Deci vrei o singura valoare gen 3 useri/ora in ultima saptamana optinuta impartind 504/7/24 ?

Asta calculezi foarte usor, impartind totalul la numarul de ore, doar ca, statistic, nu-ti spune mai nimic, acei 3 useri/ora putand fi cateva sute intr-un interval foarte mic, apoi nemaiintrand nimeni.

#11
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006

View PostBIT2GB, on 27 februarie 2017 - 19:27, said:

Haideti ca impreuna sa o luam pas cu pas. In baza de date cand useru x intra in tabela snapshot se salveaza un time impreuna cu un identificator unic, care indentificator ramane unic pt acea peroana cat timp el detine acelasi os si aceeasi aplicatie (fara reinstall)
Eu mai am o verificare care nu permite introducerea in db atata timp cat ultima conectare a avut loc in ultimele 5 minute.
Deci revenim, facem interogarea care nu poate returna altceva decat numarul total de conectari ale diferitilor useri ,care s.au conectat in intervalul dat de mine si anume in ultima saptamana in comparatie cu prezentul, corect? Eu cred ca da.
Urmatorul pas daca presupunem ca numarul total este 300 in ultima saptamana pentru a afla inte.o zi in medie cati s.au conectat impartim 300 la 7 si obtinem un r1. Corect? Eu cred ca da.
Urmatorul pas este de a afla cati useri s.au conectat intr.o ora in medie astfel ca impartim r1 la 24.
Rezultatul poate fi unul zecimal iar pt dragul artei si logica folosim round . Nu de alta dar nu se poate conecta 0.89 parti dintr.un om
Dupa round rezultatul e afisat.
Secunde de 0 nu vor putea exista. Va rog ca punctual sa imi explicati unde este lacuna in gandirea mea si de ce nu are "nici in clin nici in maneca" ceea ce am gandit eu exceptand notarea variabilelor.
Multumesc
Oho, tintesti sus vad. Bravo. Ai nevoie de outlier detection.

Brush up your maths.

#12
BIT2GB

BIT2GB

    Junior Member

  • Grup: Members
  • Posts: 106
  • Înscris: 07.11.2011
In cazul de mai sus da vreau doar o valoare simpla aceea am si specificat nu stiu ce a fost asa greu de inteles dani a inteles corect.
In viitor am o alta idee pentru asta dar e ceva temporar o sa va prezint. ideea era doar daca logica era buna atata tot nu ma interesa atat de mult comentarii pe baza codului.
Matematica mea sta bine garantez era ceva simplu cu regula de 3 simpla dar vroiam sa vad ca am si implementat corect.
Se paote face cu curbe bezier sau uzand polinomul lui berstein asta va fi urmatorul pas dar asta e ceva temporar si putin important.
proiectul se afla aici http://89.34.25.136

Anunturi

Chirurgia endoscopică a hipofizei Chirurgia endoscopică a hipofizei

"Standardul de aur" în chirurgia hipofizară îl reprezintă endoscopia transnazală transsfenoidală.

Echipa NeuroHope este antrenată în unul din cele mai mari centre de chirurgie a hipofizei din Europa, Spitalul Foch din Paris, centrul în care a fost introdus pentru prima dată endoscopul în chirurgia transnazală a hipofizei, de către neurochirurgul francez Guiot. Pe lângă tumorile cu origine hipofizară, prin tehnicile endoscopice transnazale pot fi abordate numeroase alte patologii neurochirurgicale.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate