レポート統計和アルゴリズム
5787 ワード
バックグラウンド・プログラムのレポート・システムでは、いくつかの問題が発生することがあります.たとえば、データの粒度に応じてグループ化して問題を加算します.
まず、現在区間内のデータ$Array[[データ、時間],...]を持っている場合のシナリオについて説明します.時間粒度$TimeList[time 1,time 2,time 3...]データをグループ化して和を求めます
比較的速いアルゴリズムを与えます.
データ:
転載先:https://www.cnblogs.com/oldhands/p/11442622.html
まず、現在区間内のデータ$Array[[データ、時間],...]を持っている場合のシナリオについて説明します.時間粒度$TimeList[time 1,time 2,time 3...]データをグループ化して和を求めます
比較的速いアルゴリズムを与えます.
データ:
1 $array1 = [
2 10,20,30,40,50
3 ];
4 $array2 = [
5 [1,0],
6 [3,4],
7 [5,15],
8 [7,25],
9 [9,26],
10 [15,30],
11 [17,35],
12 [12,46],
13 [3,48],
14 [8,50],
15
16 ];
17
18 :
19 /**
20 * SUM
21 * @param $Array
22 * @param $TimeList
23 * @return array
24 */
25 function($Array , $TimeList){
26 $LengthArray = count($Array);
27 $LengthTimeList = count($TimeList);
28 $res = [];
29 // 4
30 for($i = 0;$i < $TimeList;$i++){
31 $res[$i] = 0;
32 }
33 //
34 $i = 0;
35 $j = 0;
36 for(;$i<$LengthTimeList;$i++){
37 for(;$j<$LengthArray;$j++){
38 if($TimeList[$j][1] > $Array[$i]){
39 break;
40 }
41 //
42 $res[$i] += $Array[$j][0];
43 }
44 }
45 return $res;
46 }
47
48 : , 。
転載先:https://www.cnblogs.com/oldhands/p/11442622.html