精华内容
下载资源
问答
  • 运动世界校园破解刷跑步数据

    万次阅读 多人点赞 2019-05-28 18:56:23
    注意:实验阶段的切勿使用个人账号进行刷数据,以免被视为作弊。 截获请求负载信息 运动世界的跑步规则,大家应该都很熟悉了,在选择目标距离后,在地图上回“随机...分别对设置目标距离、产生随机点、上传数据...

    注意:实验阶段的切勿使用个人账号进行刷数据,以免被视为作弊。

     

    截获请求负载信息

    运动世界的跑步规则,大家应该都很熟悉了,在选择目标距离后,在地图上回“随机”给出多个待检测点,而在这些点中,你必须要经过几个,路线随意,这样才完成了跑步评测的第一步。而在跑步结束后,软件还会计算你的跑步平均速度,如果偏差太大(过快或过慢)也不会记录成为有效成绩。

    分别对设置目标距离产生随机点上传数据三个请求进行了抓包,其结果如下:

    设置目标点 及 产生随机点

    POST http://gxapp.iydsj.com/api/v2/campus/901/get/1/distance/3 
    Host: gxapp.iydsj.com
    uid: 47881
    Accept: */*
    Authorization: Basic MTRwXBd3MjU1MzU6MTk5NzAyLjZXWGz=
    Proxy-Connection: keep-alive
    osType: 1
    appVersion: 1.2.0
    Accept-Language: zh-Hans-CN;q=1
    Accept-Encoding: gzip, deflate
    Content-Type: application/json
    DeviceId: FC139628-F5F6-423A-ADBF-C8E310FCB713
    CustomDeviceId: FC139628-F5F6-423A-ADBF-C8E310FCB713_iOS_sportsWorld_campus
    Content-Length: 45
    User-Agent: SWCampus/1.2.0 (iPhone; iOS 9.3.4; Scale/3.00)
    Connection: keep-alive
    json: {"longitude":103.991842,"latitude":30.766178}

    数据上传

    POST http://gxapp.iydsj.com/api/v2/users/47881/running_records/add 
    Host: gxapp.iydsj.com
    uid: 47881
    Accept: */*
    Authorization: Basic MTRwXBd3MjU1MzU6MTk5NzAyLjZXWGz=
    Proxy-Connection: keep-alive
    osType: 1
    appVersion: 1.2.0
    Accept-Language: zh-Hans-CN;q=1
    Accept-Encoding: gzip, deflate
    Content-Type: application/json
    DeviceId: FC139628-F5F6-423A-ADBF-C8E310FCB713
    CustomDeviceId: FC139628-F5F6-423A-ADBF-C8E310FCB713_iOS_sportsWorld_campus
    Content-Length: 89183
    User-Agent: SWCampus/1.2.0 (iPhone; iOS 9.3.4; Scale/3.00)
    Connection: keep-alive
    
    json: {"totalDis":3.24,"sportType":1,"speed":12,"fivePointJson":"{"useZip" : false, "fivePointJson" : "[{"flag":"1476258220000","isPass":true,"lat":"30.772452","lon":"103.988141","isFixed":"0"},
    {"flag":"1476258220000","isPass":true,"lat":"30.769404","lon":"103.991393","isFixed":"0"},{"flag": ...
    
    // 数据量过大,部分显示

    从格式上来看,很容易就能猜到这是个 Base64 转码方式。于是使用 Base64 解码方式将其转回,发现了具有如下规则:

    Basic [username]:[passward]

     

    进行跑步数据的处理及分析

    展示一个接近完整的跑步数据:

    {
    	"totalDis":3.24,
    	"sportType":1,
    	"speed":12,
    	"fivePointJson":
    		"{
    			"useZip" : false,  
    			"fivePointJson" : 				
                "[{
    				"flag":"1476258220000",
    				"isPass":true,
    				"lat":"30.772452",
    				"lon":"103.988141",
    				"isFixed":"0"
    			},
    			{
    				"flag":"1476258220000",
    				"isPass":true,
    				"lat":"30.769404",
    				"lon":"103.991393",
    				"isFixed":"0"
    			},
    			{
    				"flag":"1476258220000",
    				"isPass":true,
    				"lat":"30.768566",
    				"lon":"103.989982",
    				"isFixed":"0"
    			},	
    			{
    				"flag":"1476258220000",
    				"isPass":false,
    				"lat":"30.774981",
    				"lon":"104.000061",
    				"isFixed":"0"
    			},
    			{
    				"flag":"1476258220000",
    				"isPass":true,
    				"lat":"30.775152",
    				"lon":"103.990113",
    				"isFixed":"1"
    			}]"}",
    		"selDistance":3,
    		"unCompleteReason":4,
    		"allLocJson":
    		"{
    			"useZip" : false,  
    			"allLocJson" : 		
    			"[{
    				"speed":"0",
    				"id":"1",
    				"pointid":"1",
    				"radius":"65.000000",
    				"gaintime":"1476258220000",
    				"createtime":"",
    				"modifytime":"",
    				"type":"5",
    				"totaldis":"0",
    				"lat":"30.766170",
    				"flag":"1476258220000",
    				"avgspeed":"0",
    				"totaltime":"2.000000",
    				"lng":"103.991934",
    				"locationtype":"0"
    			},
    			....,
    			{
    				"speed":"0",
    				"id":"294",
    				"pointid":"294",
    				"radius":"10.000000",
    				"gaintime":"1476260686000",
    				"createtime":"",
    				"modifytime":"",
    				"type":"6",
    				"totaldis":"3241",
    				"lat":"30.766135",
    				"flag":"1476258220000",
    				"avgspeed":"0",
    				"totaltime":"2159.000000",
    				"lng":"103.992010",
    				"locationtype":"0"
    			}]
    		"}",
    	"complete":true,
    	"startTime":1476258220000,
    	"stopTime":1476260686000,
    	"totalTime":2466
    }

    这里仍然省略了大量的跑步打点数据,因为实在是太多。根据 json 数据每个属性的名字,我们能猜出个大概。而且在最外层数据中,我们发现 :totalDisspeed 、 fivePointJson 、 complete 、 startTime 、 stopTime 、 totalTime 这几个属性,对于所有的数据处理,都是在 client 端进行的,而后台的服务器仅仅提供了数据库的记录作用。

    经过几组数据的测试,我们发现在 server 端,仅仅对当次提交的 speed 数据进行判断,而 speed 数据居然没有经过 totalTime 和 totalDis 的验证而后两者仅仅是用来在 client 端起显示作用

    而对于 startTime 和 stopTime 两个属性,自然就能猜测到这是系统默认生成的当前时间的时间戳,从末尾的三个0就可以暴露出它设置成为毫秒级别。

    我们再来看 fivePointJson 这个属性的结构:

    "flag":"1476258220000",
    "isPass":true,
    "lat":"30.775152",
    "lon":"103.990113",
    "isFixed":"1"

    flag 自然也是时间戳,并且可以惊讶的发现他与 startTime 相同。而是否通过,仅仅使用了 isPass 这个布尔值来记录。实在是令人无语,于是我将数据保存下来,进行一次虚假提交,不出意外增加了一次新的记录。

    但是知道了这些,我们还是无法解决一个重要的问题,即跑步路径坐标。并且在我的提交尝试中,如果跑步路径的 json 格式提交错误,就会造成在 client 端无法显示跑步路线的问题。由于这个 app 使用了百度地图第三方sdk,所以我的第一想法是通过百度地图路径规划功能,从一条路径中取点进行构造 route。可是在构造的时候会遇到很多问题,比如取点的距离与跑步速度不统一等。

    而在 app 中会有一个 约跑功能 ,我们可以看见他人的跑步路线。因此我们打算采取偷梁换柱的方式,将他人跑步数据进行抓取,进而修改成自己此时的信息及时间戳即可。

    约跑请求

    {
    	"error":10000,
    	"message":"成功",
    	"data":
    	{
    		"roomInfoModel":
    		{
    			"beginTime":"2016-10-21 20:17:13",
    			"endTime":"2016-10-21 20:44:42",
    			"distance":3.0,
    			"locDesc":"人体机能实验室",
    			"finishNum":2
    		},
    		"roomersModelList":
    		[{
    			"finished":true,
    			"uid":57446,
    			"unid":901,
    			"icon":
    			"http://imgs.gxapp.iydsj.com/imgs/d30a0bff-1b20-4504-91b9-49ae65ada0a6.jpeg",
    			"sex":1,
    			"name":"杨xx",
    			"endTime":"2016-10-21 20:44:42",
    			"points":"{...}"
    		},
    		{
    			"finished":true,
    			"uid":57276,
    			"unid":901,
    			"icon":"http://imgs.gxapp.iydsj.com/imgs/null",
    			"sex":0,
    			"name":"李x",
    			"endTime":"2016-10-21 20:44:42",
    			"points":"{...}"
    		},...
    		]
    	}
    }

    为了保护隐私,我没有展示完整姓名。从获取到的数据中,我们发现 points 的格式与我们想要的跑步路线是完全一致的。因此我们对其进行数据解析,并处理时间戳生成我们所需要的数据。进而再将处理过后的数据进行整合,通过上传数据接口对个人用户进行认证,制造一条近乎完美的跑步数据出来。

    信息泄露问题

    我大概可以猜测一下,每个需要跑步的学校都会收到比以往多的多的垃圾短信。因为在约跑记录网络接口中,可以能够获取到每个用户的真实姓名、性别、头像,这是极其严重的个人信息泄露

    在斥责 app 制作公司的同时,也提醒广大童鞋多加注意个人隐私的保护,提高个人信息的安全意识,在有法却无严厉监管的环境下我们只有自我提高。(这实属无奈之举)

    展开全文
  • 当今世界最为经典的十大算法--投票进行时

    万次阅读 热门讨论 2011-03-07 10:03:00
    内容说明:I、 本文原名为:当今世界最受人们重视的十大经典算法,后改为如上题目。II、本文分为俩部分: 第一部分、来自圣经的十大算法:为某网友票选出来的十个来自圣经的算法。 第二部分、当今世界最为经典的...

                         当今世界最为经典的十大算法--投票进行时

     

    作者:July、
    时间:二零一一年三月七日。
    参考:十三个经典算法研究与总结、目录+索引,本人第一大原创作品。

    内容说明:
    I、 本文原名为:当今世界最受人们重视的十大经典算法,后改为如上题目。
    II、本文分为俩部分:
        第一部分、来自圣经的十大算法:为某网友票选出来的十个来自圣经的算法。
        第二部分、当今世界最为经典的十大算法--投票进行时:是恳请本文的读者为您心目中当今世界最为经典的算法投上一票,最终在本BLOG内票选产生当今世界最为经典的十大算法(投票截止日期,三年后的此刻,即二零一四年三月七日)。非常感谢大家。
    ----------------------------------------

     

    第一部分、来自圣经的十大算法

        当今世界,已经被发现或创造的经典算法数不胜数。如果,一定要投票选出你最看重的十大算法,你会作何选择列?有国外网友在StackExchange上发起过投票,让人们投票选出心目中最为经典的算法,最终产生了下面得票数最高的十大经典算法(投票数统计截止到2011年3月7日):

    第十名:Huffman coding(霍夫曼编码)
        霍夫曼编码(Huffman Coding)是一种编码方式,是一种用于无损数据压缩的熵编码(权编码)算法。1952年,David A. Huffman在麻省理工攻读博士时所发明的,并发表于《一种构建极小多余编码的方法》(A Method for the Construction of Minimum-Redundancy Codes)一文。


    第九名:Binary Search (二分查找)
        在一个有序的集合中查找元素,可以使用二分查找算法,也叫二分搜索。二分查找算法先比较位于集合中间位置的元素与键的大小,有三种情况(假设集合是从小到大排列的):
        1.键小于中间位置的元素,则匹配元素必在左边(如果有的话),于是对左边的区域应用二分搜索。
        2.键等于中间位置的元素,所以元素找到。
        3.键大于中间位置的元素,则匹配元素必在右边(如果有的话),于是对右边的区域应用二分搜索。
    另外,当集合为空,则代表找不到。


    第八名:Miller-Rabin作的类似的试验测试
        这个想法是利用素数的性质(如使用费马大定理)的小概率寻找见证不数素数。如果没有证据是足够的随机检验后发现,这一数字为素数。


    第七名:Depth First Search、Breadth First Search(深度、广度优先搜索)
        它们是许多其他算法的基础。关于深度、广度优先搜索算法的具体介绍,请参考此文:教你通透彻底理解:BFS和DFS优先搜索算法


    第六名:Gentry's Fully Homomorphic Encryption Scheme(绅士完全同态加密机制)算法。
        此算法很漂亮,它允许第三方执行任意加密数据运算得不到私钥(不是很了解)。


    第五名:Floyd-Warshall all-pairs最短路径算法
        关于此算法的介绍,可参考我写的此文:几个最短路径算法比较(http://blog.csdn.net/v_JULY_v/archive/2011/02/12/6181485.aspx)。
    d[]: 二维数组. d[i,j]最小花费、或最短路径的邻边。

    for k from 1 to n:
      for i from 1 to n:
        for j from 1 to n:
          d[i,j] = min(d[i,j], d[i,k] + d[k,j])

     

    第四名:Quicksort(快速排序)
        快速排序算法几乎涵盖了所有经典算法的所有榜单。它曾获选二十世纪最伟大的十大算法(参考这:细数二十世纪最伟大的10大算法)。关于快速排序算法的具体介绍,请参考我写的这篇文章:一之续、快速排序算法的深入分析,及十二、一之再续:快速排序算法之所有版本的c/c++实现


    第三名:BFPRT 算法
        1973 年,Blum、Floyd、Pratt、Rivest、Tarjan一起发布了一篇名为 “Time bounds for selection” 的论文,给出了一种在数组中选出第k大元素平均复杂度为O(N)的算法,俗称"中位数之中位数算法"。这个算法依靠一种精心设计的 pivot 选取方法,即选取中位数的中位数作为枢纽元,从而保证了在最情况下的也能做到线性时间的复杂度,打败了平均O(N*logN)、最坏 O(n^2) 复杂度的快速排序算法。

        事实上,这个所谓的BFPRT,就是本blog中阐述过的快速选择SELECT算法,详情请参考下列博文:第三章、寻找最小的k个数十四、快速选择SELECT算法的深入分析与实现。在我的这两篇文章中,给出了此快速选择SELECT算法,借助选取数组中中位数的中位数作为枢纽元,能做到最坏情况下运行时间为O(N)的复杂度的证明。

        我在这里简单介绍下在数组中选出第k大元素的时间复杂度为O(N)的算法:
        类似快排中的分割算法:

    每次分割后都能返回枢纽点在数组中的位置s,然后比较s与k的大小
    若大的话,则再次递归划分array[s..n],
    小的话,就递归array[left...s-1] //s为中间枢纽点元素。
    否则返回array[s],就是partition中返回的值。 //就是要找到这个s。

    找到符合要求的s值后,再遍历输出比s小的那一边的元素。

        各位还可参考在:算法导论上,第九章中,以期望线性时间做选择,有寻找数组中第k小的元素的,平均时间复杂度为O(N)的证明。原程序随机选取数组中某一元素作为枢纽元,最后可证得程序的期望运行时间为O(n),且假定元素是不同的。


    第二名:Knuth-Morris-Pratt字符串匹配算法
        关于此算法的介绍,请参考此文:六、教你从头到尾彻底理解KMP算。KMP算法曾经落选于二十世纪最伟大的十大算法,但人们显然不能接受,如此漂亮、高效的KMP算法竟然会落选。所以,此次最终投票产出生,KMP算法排到了第二名。


    第一名:Union-find

        并查集是一种树型的数据结构,用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。常常在使用中以森林来表示。集就是让每个元素构成一个单元素的集合,并就是按一定顺序将属于同一组的元素所在的集合合并。并行查找,最终占据了此份榜单的第一名。

        补充:前三名的投票数,只相差4票,8票。所以这个排名日后还会不断有所变化。但不管最终结果怎样,这前十名的算法已经基本敲定了。
        原投票网址http://cstheory.stackexchange.com/questions/189/algorithms-from-the-book

     

    第二部分、当今世界最为经典的十大算法--投票进行时
     
        怎么样,上文那些投票产生出来的来自圣经的算法,你是否熟悉?或者,如果要您选出您心目中,当今世界最为经典的十大算法,您肯定也、绝对不一定认同上述十个所谓来自圣经的算法便是当今世界最为经典的十大算法,对吧?ok,那么,现在,我给你一个投票权,你会把票投给哪一个算法列?好的,咱们也来一次投票吧,请把你的意见,决定权写在本文下面的评论里。

        我把已经产生的前十名的算法,再写在下面,方便投票(投票截止日期:三年后的今天,即二零一四年三月七日):

    、Huffman coding(霍夫曼编码)。
    、Binary Search (二分查找)。
    、Miller-Rabin作的类似的试验测试。
    、Depth First Search(深度优先搜索)。
    、绅士完全同态加密机制
    、Floyd-Warshall all-pairs最短路径算法。
    、Quicksort(快速排序)。
    、BFPRT 算法。
    、Knuth-Morris-Pratt字符串匹配算法。
    、Union-find。

    为了让大家有更多的选择,我再贴出其它几种同样经典但暂时未能排进上述榜单前十名的候选算法:

    十一、Cooley-Tukey FFT算法。快速傅里叶变换算法。关于傅里叶变换算法的介绍,请参考此文:十、从头到尾彻底理解傅里叶变换算法、上,及十、从头到尾彻底理解傅里叶变换算法、下

    十二linear programming,线性规划。

    十三Dijkstra 算法。与上第五一样,又一种最短路径算法。具体介绍,请参考:二之续、彻底理解Dijkstra算法,和二之再续、Dijkstra 算法+fibonacci堆的逐步c实现,及二之三续、Dijkstra 算法+Heap堆的完整c实现源码

    十四Merge Sort。归并排序。
    十五Ford–Fulkerson算法。网络最大流算法。
    十六辗转相除法
          在数学中,辗转相除法,又称欧几里得算法,是求最大公约数的算法,即求两个正整数之最大公因子的算法。此算法作为TAOCP第一个算法被阐述,足见此算法被重视的程度。它是已知最古老的算法, 其可追溯至3000年前。辗转相除法首次出现于欧几里得的《几何原本》(第VII卷,命题i和ii)中,而在中国则可以追溯至东汉出现的《九章算术》。扩展的辗转相除法则构造性地证明了,对任意整数a和b ,存在一对x、y使得 ax + by = gcd(a, b) 。

    十七RSA加密演算法。一种加密算法,日后再做详细介绍。
    十八遗传算法。可参考本人写的关于GA 算法的这篇文章:七、遗传算法 透析GA本质

    十九最大期望(EM)算法
        此算法入选数据挖掘领域十大经典算法。在统计计算中,最大期望(EM)算法是在概率(probabilistic)模型中寻找参数最大似然估计的算法,其中概率模型依赖于无法观测的隐藏变量(Latent Variable)。最大期望经常用在机器学习和计算机视觉的数据聚类(Data Clustering)领域。最大期望算法经过两个步骤交替进行计算,第一步是计算期望(E),利用对隐藏变量的现有估计值,计算其最大似然估计值;第二步是最大化(M),最大化在 E 步上求得的最大似然值来计算参数的值。M 步上找到的参数估计值被用于下一个 E 步计算中,这个过程不断交替进行。

    二十、数据压缩
        数据压缩是通过减少计算机中所存储数据或者通信传播中数据的冗余度,达到增大数据密度,最终使数据的存储空间减少的技术。数据压缩在文件存储和分布式系统领域有着十分广泛的应用。数据压缩也代表着尺寸媒介容量的增大和网络带宽的扩展。

    二十一、Hash函数
        Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。关于hash表的详细阐述,请参考此篇文章:十一、从头到尾彻底解析Hash表算法

    二十二、Dynamic Programming(动态规划)。关于动态规划的粗略介绍,请参考此文:三、dynamic programming

    二十三、堆排序算法
        堆排序算法作为一种快速稳定的算法,其平均时间复杂度(最坏也为)O(n*lgn)。当然,在实际应用中,一个实现的好的快速排序算法仍然要优于堆排序算法。不过,堆数据结构还可以作为高效的优先级队列。对堆排序算法作简单了解,可参考这:堆排序算法

    二十四递归与回溯算法。此俩个算法,相信各位比较熟悉,在此不做赘述。  

    二十五最长公共子序列
        最长公共子序列,英文缩写为LCS(Longest Common Subsequence)。其定义是,一个数列 S ,如果分别是两个或多个已知数列的子序列,且是所有符合此条件序列中最长的,则 S 称为已知序列的最长公共子序列。
    动态规划的一个计算最长公共子序列的方法如下:
        以两个序列 X、Y 为例子:
    设有二维数组 f[i][j] 表示 X 的 i 位和 Y 的 j 位之前的最长公共子序列的长度,则有:

          f[1][1] = same(1,1)
          f[i][j] = max{f[i-1][j-1]+same(i,j),f[i-1][j],f[i][j-1]}

        其中,same(a,b)当 X 的第 a 位与 Y 的第 b 位完全相同时为“1”,否则为“0”。
    此时,f[i][j]中最大的数便是 X 和 Y 的最长公共子序列的长度,依据该数组回溯,便可找出最长公共子序列。

        该算法的空间、时间复杂度均为O(n2),经过优化后,空间复杂度可为O(n),时间复杂度为O(nlogn)。更多详情,参见之前写的一篇拙文(不过,鉴于写的糟,日后会重写):三、dynamic programming

    二十六、红黑树的算法与实现
        关于红黑树,linux内核中有实现,本BLOG内也已经写了6篇红黑树系列的文章。且,本BLOG内的此红黑树系列,总计六篇文章,是整个国内有史以来有关红黑树的最具代表性,最具完整性,最具参考价值的资料。详情,请参考:五(续)、教你透彻了解黑树,及红黑树的c++完整实现源码

    二十七、A*搜寻算法
        相对于BFS、Dijkstra 等算法,A*搜寻算法作为一种高效的最短路径搜索算法,如今,已得到日益广泛的应用。初步了解A*搜寻算法的高效及与其它最短路径算法的比较,请参考此文:一(续)、A*,Dijkstra,BFS算法性能比较及A*算法的应用

    二十八、图像特征提取与匹配之SIFT算法
        sift,尺度不变特征转换,是一种电脑视觉的算法用来侦测与描述影像中的局部性特征,它在空间尺度中寻找极值点,并提取出其位置、尺度、旋转不变量,此算法由 David Lowe 在1999年所发表,2004年完善总结。关于此算法,请参考如下,粗略介绍:九、图像特征提取与匹配之SIFT算,利用第三方库编译过程:九(续)、sift算法的编译与实现,c语言一步一步实现sift算法:九之再续:一步一步用c语言实现sift算法、上九之再续:教你一步一步用c语言实现sift算法、下

    候选经典算法一直在不断增补中,估计最后能达到上100种。...

         还犹豫什么列?快投上您宝贵的一票吧。每人可投多次票,只要您认为哪个算法是最为经典的算法,您就在下面的评论里写上它的序号,及算法名称。
        当然,如果上文中不曾出现你认为最经典的算法,你也可以写在评论里,为你钟爱的它投上一票。而后我将考虑您的意见,把您钟爱的算法也作为一种候选算法,添补上去。:D。
       
        最后,我们自己来做一份十大经典算法的排名榜单,也让世界各地的人看看我们中国人的意见。怎么样,还犹豫什么列,赶紧评论、赶紧投票吧...
        更新:

    • 由于诸多事情,未能抽空给各位投了票的朋友传送本博客全部博文集锦的文件,若各位等不及日后待我一一传送的话,还望各位移步至本人的资源下载处:http://v_july_v.download.csdn.net/,下载。那里有本博客所有任何一期的博文集锦文件。见谅,多谢。 July、二零一一年十月二十四日凌晨。
    • 本blog最新博文集锦第7期CHM文件免积分下载:http://download.csdn.net/detail/v_july_v/4463100。July、二零一二年一月十八日。

    本BLOG版权声明、即日生
        1、本人和CSDN对本BLOG内所有任何一切内容和文章,享有版权。如需转载,请注明出处及作者本人。
        2、凡是转载本BLOG内任何文章和内容的个人,或网站,一律不注明出处者,本人将永久追踪、永久谴责、永久追究法律责任的一切权利。谢谢。July、二零一一年三月七日,即日起生效。

    展开全文
  • 当今世界十大经典算法

    万次阅读 2012-08-22 16:21:25
    当今世界,已经被发现或创造的经典算法数不胜数。如果,一定要投票选出你最看重的十大算法,你会作何选择列?有国外网友在StackExchange上发起过投票,让人们投票选出心目中最为经典的算法,最终产生了下面得票数最高...

        当今世界,已经被发现或创造的经典算法数不胜数。如果,一定要投票选出你最看重的十大算法,你会作何选择列?有国外网友在StackExchange上发起过投票,让人们投票选出心目中最为经典的算法,最终产生了下面得票数最高的十大经典算法(投票数统计截止到2011年3月7日):

    第十名:Huffman coding(霍夫曼编码)
        霍夫曼编码(Huffman Coding)是一种编码方式,是一种用于无损数据压缩的熵编码(权编码)算法。1952年,David A. Huffman在麻省理工攻读博士时所发明的,并发表于《一种构建极小多余编码的方法》(A Method for the Construction of Minimum-Redundancy Codes)一文。


    第九名:Binary Search (二分查找)
        在一个有序的集合中查找元素,可以使用二分查找算法,也叫二分搜索。二分查找算法先比较位于集合中间位置的元素与键的大小,有三种情况(假设集合是从小到大排列的):
        1.键小于中间位置的元素,则匹配元素必在左边(如果有的话),于是对左边的区域应用二分搜索。
        2.键等于中间位置的元素,所以元素找到。
        3.键大于中间位置的元素,则匹配元素必在右边(如果有的话),于是对右边的区域应用二分搜索。
    另外,当集合为空,则代表找不到。


    第八名:Miller-Rabin作的类似的试验测试
        这个想法是利用素数的性质(如使用费马大定理)的小概率寻找见证不数素数。如果没有证据是足够的随机检验后发现,这一数字为素数。


    第七名:Depth First Search、Breadth First Search(深度、广度优先搜索)
        它们是许多其他算法的基础。关于深度、广度优先搜索算法的具体介绍,请参考此文:教你通透彻底理解:BFS和DFS优先搜索算法


    第六名:Gentry's Fully Homomorphic Encryption Scheme(绅士完全同态加密机制)算法。
        此算法很漂亮,它允许第三方执行任意加密数据运算得不到私钥(不是很了解)。


    第五名:Floyd-Warshall all-pairs最短路径算法
        关于此算法的介绍,可参考我写的此文:几个最短路径算法比较(http://blog.csdn.net/v_JULY_v/archive/2011/02/12/6181485.aspx)。
    d[]: 二维数组. d[i,j]最小花费、或最短路径的邻边。

    for k from 1 to n:
      for i from 1 to n:
        for j from 1 to n:
          d[i,j] = min(d[i,j], d[i,k] + d[k,j])

     

    第四名:Quicksort(快速排序)
        快速排序算法几乎涵盖了所有经典算法的所有榜单。它曾获选二十世纪最伟大的十大算法(参考这:细数二十世纪最伟大的10大算法)。关于快速排序算法的具体介绍,请参考我写的这篇文章:一之续、快速排序算法的深入分析,及十二、一之再续:快速排序算法之所有版本的c/c++实现


    第三名:BFPRT 算法
        1973 年,Blum、Floyd、Pratt、Rivest、Tarjan一起发布了一篇名为 “Time bounds for selection” 的论文,给出了一种在数组中选出第k大元素平均复杂度为O(N)的算法,俗称"中位数之中位数算法"。这个算法依靠一种精心设计的 pivot 选取方法,即选取中位数的中位数作为枢纽元,从而保证了在最情况下的也能做到线性时间的复杂度,打败了平均O(N*logN)、最坏 O(n^2) 复杂度的快速排序算法。

        事实上,这个所谓的BFPRT,就是本blog中阐述过的快速选择SELECT算法,详情请参考下列博文:第三章、寻找最小的k个数十四、快速选择SELECT算法的深入分析与实现。在我的这两篇文章中,给出了此快速选择SELECT算法,借助选取数组中中位数的中位数作为枢纽元,能做到最坏情况下运行时间为O(N)的复杂度的证明。

        我在这里简单介绍下在数组中选出第k大元素的时间复杂度为O(N)的算法:
        类似快排中的分割算法:

    每次分割后都能返回枢纽点在数组中的位置s,然后比较s与k的大小
    若大的话,则再次递归划分array[s..n],
    小的话,就递归array[left...s-1] //s为中间枢纽点元素。
    否则返回array[s],就是partition中返回的值。 //就是要找到这个s。

    找到符合要求的s值后,再遍历输出比s小的那一边的元素。

        各位还可参考在:算法导论上,第九章中,以期望线性时间做选择,有寻找数组中第k小的元素的,平均时间复杂度为O(N)的证明。原程序随机选取数组中某一元素作为枢纽元,最后可证得程序的期望运行时间为O(n),且假定元素是不同的。


    第二名:Knuth-Morris-Pratt字符串匹配算法
        关于此算法的介绍,请参考此文:六、教你从头到尾彻底理解KMP算。KMP算法曾经落选于二十世纪最伟大的十大算法,但人们显然不能接受,如此漂亮、高效的KMP算法竟然会落选。所以,此次最终投票产出生,KMP算法排到了第二名。


    第一名:Union-find

        并查集是一种树型的数据结构,用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。常常在使用中以森林来表示。集就是让每个元素构成一个单元素的集合,并就是按一定顺序将属于同一组的元素所在的集合合并。并行查找,最终占据了此份榜单的第一名。

        补充:前三名的投票数,只相差4票,8票。所以这个排名日后还会不断有所变化。但不管最终结果怎样,这前十名的算法已经基本敲定了。

    展开全文
  • 36大数据专访极光大数据 用数据改变世界 36大数据2017-03-17 4:08:46人物观点评论(0) 从互联网诞生的第一天起,数据就如约而行。而随着互联网应用的日益深化,2016年全球数据量呈现爆炸式增长,数据已经渗透...
    

    36大数据专访极光大数据 用数据改变世界

    从互联网诞生的第一天起,数据就如约而行。而随着互联网应用的日益深化,2016年全球数据量呈现爆炸式增长,数据已经渗透到每一个行业和业务领域。“大数据”一词也已从概念层面逐渐被实际应用于各个垂直领域,帮助企业及行业解决长久以来未能解决的问题,真正成为未来发展的“生产力”。无论是互联网金融崛起后所带来的在金融反欺诈方面的挑战,还是传统商业地产在电商挑战下向“新零售”方向的转型升级,均需要大数据的魔法棒助其一臂之力,这就给了众多大数据服务企业“用数据改变世界”的机会。此次,36大数据特别专访极光大数据CEO罗伟东,深入了解极光大数据如何创造数据价值,用实际案例来解析大数据在金融反欺诈、商业地产等领域的创新应用。

    极光大数据创始人兼CEO

    罗伟东 Chris,极光大数据创始人兼CEO

    下面是独家专访内容。

    下面是独家专访内容。

    36大数据:我们知道,极光早在2011年就成立了,当时名字还是极光推送,从2016年正式升级成极光大数据,请问这样的升级背后的考虑是什么样的呢?

    极光大数据CEO罗伟东:极光从开发者服务升级到移动大数据服务商是一件水到渠成的事情。我们看到随着互联网应用的日益深化,2016年全球数据量呈现爆炸式增长,数据渗透到每一个行业和业务领域,并成为未来发展的“生产力”。而事实上早在 2011 年极光创立之初,我们就意识到了大数据的价值,并认为数据的质量和数量非常重要,进而希望通过推送等开发者服务布局大数据领域。

    自成立近6年以来,极光积累了海量的移动数据,同时也建立起了一支大数据分析、数据挖掘、应用能力都处于行业领先的技术团队。从“极光推送”到“极光”,两字之差,代表的却是继承与升级。继承的是为用户创造价值的不变理念,升级的是为用户服务的广度与深度。

    36大数据:之前罗总(极光大数据CEO罗伟东)在接受媒体采访的时候,一直强调了大数据产品的货币化,那么延伸到金融反欺诈方面来,极光大数据如何将大数据“货币化”?

    极光大数据CEO罗伟东:其实大数据产品的货币化指的也就是产品的价值。我认为产品价值应该回归商业本质。产品给客户带来多少价值,这个产品就值多少钱。例如在反欺诈的这个领域,这个客户用了极光大数据的反欺诈服务后,他的违约率降低了多少百分比,降低了多少损失,然后能够愿意为这个损失付出多少,这就是我们的反欺诈产品的货币化空间。所以数据产品的货币化,最终还是取决于产品给客户带来的价值。

    那么还从金融反欺诈领域来讲,近几年互联网金融爆发式发展,随之而来的是风险的急剧增长。除了传统的信用风险,外部欺诈已经成为一个主要风险。传统的风险预防机制无法应对这些挑战,导致金融风控只能做到一定程度的“未雨绸缪”,起不到真正的全面风险控制,金融企业的损失还是居高不下,而基于移动数据的反欺诈产品则可以很好地解决这个问题。基于大数据的反欺诈机制的最大价值在于可以将更多方面的影响因素纳入到业务风控领域。

    以我们极光大数据提供的反欺诈服务为例,这套体系主要以用户在移动端的行为数据为基础,从用户移动应用使用习惯、线下活动习惯、特定领域互联网+行为习惯等多个维度对用户的风险等级进行评估,进而为金融企业的借贷行为及产品决策提供建议。整个评估过程完全在极光自有的数据源中进行,金融企业甚至无需共享自身的敏感数据即可完成评估。这就帮助了金融类客户大大降低了违约率,提升了风控能力,进而也就实现了极光大数据在金融反欺诈领域的货币化。

    36大数据:对于金融反欺诈,数据最大的三个用途在于前期的信息验真和贷中的信息补全和交叉验证,以及后期的违约信息系统黑名单建立。极光大数据在金融反欺诈方面的系统架构是什么样的呢?极光大数据在金融反欺诈方面有什么独到之处?

    极光大数据创始人兼CEO

    极光大数据CEO罗伟东:反欺诈服务质量好坏其实取决于风险识别模型的关键输入变量质量、种类和模型准确度方面。极光大数据通过全行业无差别服务积累了海量的数据,结合业务合作伙伴相关业务信息和其他输入,建立了金融反欺诈服务平台。

    一方面,通过和金融领域合作伙伴合作,我们利用机器学习和数据挖掘技术,将互联网+领域的用户行为分类总结并归纳了四大类独特的风险因子。面向不同的应用场景,极光大数据反欺诈系统可以通过模型自定义开发,使用不同的因子通过风险模型对用户的风险等级进行评定。经过我们的合作伙伴,我们可以看到极光的行为标签在欺诈模型中的单变量 KS 值超过40。

    另一方面,极光大数据拥有极具特色的客户行为标签体系,可以作为企业风控模型的外部输入因子为企业提供外部数据服务。通过实际的企业应用反馈,极光大数据从地理位置分析、特征行为分析等方面给企业提供了非常明显的价值。

    最后,作为拥有自有数据源的大数据公司,我们通过为众多合作伙伴提供反欺诈数据服务,不断优化和提升极光大数据特征因子的算法和模型水平,同时根据不同的业务场景,提供更多强大的数据服务,既可以满足企业对于外部数据的需求,又可以提升外部大数据应用水平。

    36大数据:可否为我们详细说一下极光大数据在金融反欺诈方面的应用案例呢?

    极光大数据CEO罗伟东:我们曾经服务过某消费金融公司,该公司通过线上方式完成消费借贷业务的开展,是典型的 互联网小微消费金融商业模式。极光通过每日TB 级的数据采集、清洗、加工、分析,形成移动互联网领域权威的海量数据资源,并与多家金融机构合作,对此类金融借贷业务的真实数据和与之对应的客户移动互联网风险行为数据进行有效的关联和分析。

    此外还采用API的方式进行系统无缝集成,极大提升了金融客户部署产品的整合效率和应用效率,并以设备为中心,采用弱变量因子,有效避免人为欺诈导致的识别误差。最终,极光大数据的反欺诈产品对用户移动互联网行为的分析和刻画与其在金融违约失信行为有明显相关性。通过极光反欺诈服务能够有效识别违约用户,有效降低违约率,降幅达到 51.9%。

    我们还曾针对某银行的风控部门进行数据升级,对新老客户进行有效的数据补充,对风控模型进行有效的效果提升。

    在具体执行的过程中,我们采用极光自有ID方式进行数据共享,有效避免银行客户标识信息泄露。同时,从移动互联网行为端对客户的行为特征进行识别,有效补充银行的数据资源。最终,我们帮助企业在其信贷过程中识别了超过 5000 次新老客户在互联网金融服务中的失信违约行为。

    36大数据:说起极光大数据的数据服务,我们特别想知道极光大数据在商业地产方面的表现,针对商业地产这种“低数据源”的行业,极光大数据如何利用手里的数据服务于他们呢?

    极光大数据创始人兼CEO

    极光大数据CEO罗伟东:线上线下联动的服务模式是传统实体商业发展的必然方向,并且体验式服务在实体商业地产运营的转型过程中非常重要。极光大数据可将线上线下的数据打通,在综合触达方式的优化以及智能实时营销推荐等多方面为商业地产提供完整的解决方案。

    依托我们极光自有数据管理平台的海量数据源和数十亿级别的实时数据,结合线下近场通信感知技术,极光大数据可以帮助商场实时感知并分析商场内顾客的线上和线下行为。再通过超过 500 个的用户标签体系,我们可以精确地刻画出顾客的兴趣爱好特征画像,继而帮助商家从茫茫人海中筛选出目标群体,并通过机器学习和数据挖掘的算法实现营销信息精准推荐服务。

    36大数据:极光大数据目前的商业地理服务方案中有哪些内容?可以简单给我们举例吗?

    极光大数据CEO罗伟东:最近大家都在谈的“新零售”,事实上极光大数据正在成为零售业等商业地产重构市场商业模式过程中的重要参与者。基于上一个问题中所提到的线上线下联动,极光大数据可根据商场方提供的信息对目标人群的标签进行筛选,进而界定出促销活动的目标群体。

    在目标群体界定完毕后,我们会根据前者的年龄、性别和兴趣等标签帮助商场设计广告页面,并在百度、腾讯、阿里妈妈、今日头条等多家主流媒体上通过DSP广告的方式向顾客投放具有针对性和吸引力的促销优惠信息,同时可以通过极光的数据能力帮助商场更好地利用自有流量实现服务能力的增强。换句话说,当顾客进入到特定区域时就能实时收到和当前消费需求相对应的促销信息,商场也就实现了线下消费引流。这就是我们利用极光大数据强大的实时线下位置处理能力、智能产品推荐及海量的客户兴趣标签库所实现的“新零售”。在广告投放完毕后,我们还会对广告的点击数量和覆盖区域等情况进行实时监测和分析,以便根据实际情况及时调整投放策略,从而实现投放效益最大化的效果。

    此外,去年我们在商业地理方面完成了一个活动影响力评估模型,通过这个模型我们帮助当地政府实现对会展经济在区域经济影响力的评估报告。在前几年,当地政府是和运营商进行合作,但是受制于运营商的数据单一性和隔离性,效果不是很理想。我们的商业地理服务从客流、金流和信息流角度,对区域影响力进行了深入的多维度建模,全面反映了活动对于当地政府所辖的不同行政区划的影响,对当地政府进行发展规划提供了可靠的数据支持,客户非常满意分析结果,并且大大缩短了分析周期。

    36大数据:可以透露一下极光大数据2017年会有哪些新的计划吗?

    极光大数据CEO罗伟东:极光的使命是数据改变世界,我们从改变开发者开发 app 应用的门槛入手,一步一步发展到提升数据的价值,帮助企业实现数据价值变现。2017年是极光非常重要的一年,在开发者服务方面,我们会从“多样性”入手,发布更多更好的开发者的产品;在数据服务方面,我们会从“服务价值”入手,在数据价值挖掘和业务过程结合领域充分体现极光数据特点,通过开箱即用的数据服务产品让企业、机构等实现大数据领域的数据应用。

    36大数据:我个人认为,只有中国大数据整体大环境越来越好,像咱们这样的大数据公司才会跟着越来越好,在您看来,中国大数据产业目前最缺乏的是什么?你对中国大数据产业有什么想法和愿景呢?

    极光大数据CEO罗伟东:确实近几年来随着大数据越来越受追捧,市场上也催生出了不少号称做大数据的公司,看起来竞争非常激烈。但事实上这个行业只有有核心竞争力的公司才能存活下来。

    大数据真正的关键点是“大”、“真“以及对于数据的处理能力,这也是目前这个看似竞争激烈的行业比较缺乏的,而这却是我们极光大数据的优势。我们成立近6年来服务了超过40万款移动应用,累计覆盖超过 50 亿个移动终端,月活跃用户超过 6 亿,产品覆盖了中国国内 90% 以上的移动终端。因为在 app 推送市场我们的占有率第一,保证了数据的广度最大以及数据来源的真实性,这也是我们和其他无数做大数据的公司差异化的基础,其他家并没有极光这样持续的稳定的广覆盖和高质量的数据。

    中国的大数据产业目前还是在早期,处于前面两三年的阶段。我认为这个行业在未来发展中一定会把AI结合进来。目前我们所做的所有数据产品都还没用到AI,只是一个统计的功能。就是很简单地把这些数据清洗、分析出来,做一些分析报表统计,这样就已经可以解决很多问题了。未来随着数据量越来越大,再结合AI会有更多想不到的东西产生。所以我认为,在未来整个大数据产业还有很长的路要走。也希望行业可以在大浪淘沙的竞争中留下那些真正有实力的公司,将数据作为生产力帮助社会和企业解决问题,用数据改变世界。

    展开全文
  • 当今世界最NB的25位大数据科学家

    万次阅读 2015-09-20 16:57:14
    下面我们来进行梳理,共罗列了25位当今世界,无论是在学术与工业界都产生巨大影响的数据科学家(Data Scientists)。他(她)们推动了整个领域的发展,毫无疑问,无论是在学术界还是还工业界,他(她)们都是一座座...
  • 当前显示的是ADP在世界各地运营的国家/地区。 图片来源: : 安装 克隆仓库后: npm install npm install -g gulp 您可以通过以下方式运行本地服务器: gulp 产生精简的javascript: gulp --type production
  • 这是一个新的数据集,将被用于对现实世界中的图像进行视觉推理与组合回答的任务中。该数据集中包括了有关各种日常图像的近2000万条问题。每个图像都与一组场景图(scene graph)对应。每个问题都与其语义的结构化...
  • 下面我们来进行梳理,共罗列了25位当今世界,无论是在学术与工业界都产生巨大影响的数据科学家(Data Scientists)。他(她)们推动了整个领域的发展,毫无疑问,无论是在学术界还是还工业界,他(她)们都是一座座...
  • 数据库, 数据仓库, 数据集市,数据湖,数据中台

    千次阅读 多人点赞 2019-02-22 16:21:47
    数据仓库和数据集市的区别 作者:修鹏李 出处:CSDN 大数据:数据仓库和数据库的区别 作者:南宫蓉 出处:简书 第一篇:数据仓库概述 第二篇:数据库关系建模 作者:穆晨 出处:CNBLOS 摘要 本文简要介绍...
  •  他说,“如今,全球每天将有50亿人次在访问互联网,这意味着,更多的用户所产生数据量已经超过拥挤的网络的能力,这也是当今数据中心必须改变的原因。”  波契特将会谈论对人们建立和设计未来的数据中心的...
  • 数据分析之数据预处理、分析建模、可视化

    万次阅读 多人点赞 2020-08-08 15:03:21
    数据预处理:数据清洗、数据集成、数据规约、数据变换; 数据分析模型:对比分析、漏斗分析、留存分析、A/B测试、用户行为路径分析、用户分群、用户画像分析等; 数据分析方法:描述统计、假设检验、信度分析、相关...
  • 以下文章内容,来自草堂君的新书《人人都会数据分析-从生活实例学统计》。因为新书中增添和细化了很多知识点,所以草堂君会逐步将这些内容补充到统计基础导航页中来,帮助大家建立数据分析思维。限于篇幅,只截取书...
  • 一篇文章讲清python开发必懂的8种数据结构

    千次阅读 多人点赞 2021-08-05 09:08:57
    知道哪个数据结构最适合当前的解决方案将提高程序的性能,并减少开发所需的时间。出于这个原因,大多数顶级公司都要求对数据结构有很深的理解,并在编码面试中对其进行深入的考察。 下面是我们今天要讲的内容: 什么...
  • 数据挖掘-数据预处理模块

    千次阅读 2016-05-02 00:28:20
     在数据挖掘中,海量的原始数据中存在着大量的不完整(有缺失值)、不一致、有异常的数据,严重影响到数据挖掘建模的执行效率,甚至可能导致挖掘结果的偏差,所以进行数据清洗显得尤为重要,数据清洗完成后接着进行...
  • 当今世界,已经被发现或创造的经典算法数不胜数。如果,一定要投票选出你最看重的十大算法,你会作何选择列? 最近,有人在StackExchange上发起了提问,向网友们征集当今世界最为经典的十大算法。众人在一大堆入围...
  • 数据仓库基本知识

    万次阅读 多人点赞 2017-10-31 17:35:04
    数据仓库是什么 根据统计,每个企业的数据量每2~3年时间就会成倍增长,这些数据蕴含着巨大的商业价值,而企业所关注的通常只占在总数据量的2%~4%左右。 因此,企业仍然没有最大化地利用已存在的数据资源,以...
  • 数据挖掘与数据建模步骤

    千次阅读 2014-11-14 15:20:24
    当前数据挖掘形式,是在20世纪90年代实践领域诞生的,是在集成数据挖掘算法平台发展的支撑下适合商业分析的一种形式。也许是因为数据挖掘源于实践而非 理论,在其过程的理解上不太引人注意。20世纪90年代晚期发展...
  • 但是,数据的中心性及其在当今世界中的无数价值并没有结束关于其本质的争论和有争议的观点。 每个利益相关者都从自己的角度看数据。 商家和企业界将数据视为可产生巨额利润的宝贵资产和商品。 在现有法律制度中,...
  • 2007 年 1 月,图灵奖得主、关系型数据库鼻祖 JimGray 发表演讲,他凭着自己对于人类科学发展特征的深刻洞察,敏锐地指出科学的发展正在进入“数据密集型科学发现范式”——科学史上的“第四范式...
  • 数据治理系列1:数据治理框架【解读分析】

    万次阅读 多人点赞 2019-05-08 14:58:56
    作者:石秀峰,多年来一直从事企业数据资源规划、企业数据资产管理、数据治理,欢迎关注。 一、什么是数据治理? 维基百科:数据治理对于确保数据的准确、适度分享和保护是至关重要的。有效的数据治理计划会...
  • 网管产品需要从数据仓库的角度来看,才能获得完整的视图。数据集成真正从大数据的角度来看,才能明白其中的挑战。一个运行了20多年的数据架构,必然有其合理性。也正是因为年代久远,存量过多,才导致举步维艰。在...
  • 栅格数据与矢量数据

    万次阅读 2009-05-06 15:03:00
    GIS研究的数据是地理空间数据,这是区别于其他系统的根本原因。栅格数据与矢量数据是地理信息系统中空间数据组织的两种最基本的方式. 栅格数据是以二维矩阵的形式来表示空间地物或现象分布的数据组织方式.每个...
  • 谷歌GDELT数据说明

    万次阅读 热门讨论 2017-09-22 16:13:23
    本文主要介绍GDELT数据以及对其58个字段进行说明,数据的下载代码会放在我的另一篇文章中,或者也可以直接在我的代码片中下载。之前因为学习需要下载了谷歌的GDELT数据,在国内也叫疙瘩汤,GDELT...
  • 数据科学、数据技术与数据工程

    千次阅读 2016-10-20 16:45:56
    谈到大数据,大家总会听到几个词:数据科学、数据技术和数据工程,它们之间到底有些什么区别和联系呢?   实际上,科学、技术与工程是现代“科学技术”中的三个不同领域或不同层次。 科学是对客观...
  • 数据仓库面试题

    万次阅读 多人点赞 2020-07-20 12:49:16
    概念数据模型、逻辑数据模型、物理数据模型概念数据模型CDM逻辑数据模型LDM物理数据模型PDMSCD的常用处理方式?元数据的理解?技术元数据业务元数据数据管理系统?元数据管理功能元数据管理标准元数据管理系统印象...
  • 案例上手 Python 数据可视化

    万次阅读 多人点赞 2019-02-27 23:30:05
    课程亮点 ...数据可视化是数据分析和机器学习的重要环节,比如数据清洗、特征工程、机器学习、数据分析(特别是报告)、评估等环节都会用到“数据可视化”技术。 数据可视化同时还广泛存在于各...
  • 数据挖掘

    千次阅读 2011-12-08 15:54:01
    什么是数据挖掘数据挖掘的起源数据挖掘能做什么数据挖掘中的关联规则数据挖掘和在线分析处理(OLAP)数据挖掘,机器学习和统计软硬件发展对数据挖掘的影响数据挖掘相关的10个问题 展开     数据挖掘 ...
  • 当今世界对信息技术的依赖程度日渐加深,每天都会产生和存储海量的数据数据的来源多种多样——自动检测系统、传感器和科学仪器等。不知你有没有意识到,你每次从银行取钱、买东西、写博客、发微博也会产生新的数据...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 155,348
精华内容 62,139
关键字:

当前世界产生的数据