首页 > web前端 > js教程 > 正文

javascript自然分类法算法实现代码_javascript技巧

php中文网
发布: 2016-05-16 17:20:22
原创
1735人浏览过

复制代码 代码如下:






content="initial-scale=1, maximum-scale=1,user-scalable=no">
自然分类法算法
<script><BR>function getJenksBreaks(data,numclass) {<BR>function sortNumber(a,b)//在<a style="color:#f60; text-decoration:underline;" title= "javascript"href="https://www.php.cn/zt/15724.html" target="_blank">javascript里,Array的sort方法,必须用这个函数,否则不是按数字大小排序<BR>{<BR>return a - b<BR>}<BR>// int numclass;<BR>var numdata = data.length;<BR>data.sort(sortNumber); //先排序 <P>var mat1=new Array();<BR>var mat2=new Array();<BR>var st=new Array(); <P>for (var j = 0; j <= numdata; j++){<BR>mat1[j]=new Array();<BR>mat2[j]=new Array();<BR>st[j]=0;<BR>for(var i=0;i<=numclass;i++){<BR>mat1[j][i]=0;<BR>mat2[j][i]=0;<BR>}<BR>} <P>for (var i = 1; i <= numclass; i++) {<BR>mat1[1][i] = 1;<BR>mat2[1][i] = 0;<BR>for (var j = 2; j <= numdata; j++){ <P>mat2[j][i]=Number.MAX_VALUE;<BR>}<BR>}<BR>var v=0; <P>for (var l = 2; l <= numdata; l++) {<BR>var s1=0;<BR>var s2=0;<BR>var w=0;<BR>var i3=0;<BR>for (var m = 1; m <= l; m++) {<BR>i3 = l - m + 1; <P>var val=parseInt(data[i3-1]); <P>s2 += val * val;<BR>s1 += val; <P>w++;<BR>v = s2 - (s1 * s1) / w;<BR>var i4 = i3 - 1;<BR>if (i4 != 0) {<BR>for (var j = 2; j <= numclass; j++) {<BR>if (mat2[l][j] >= (v + mat2[i4][j - 1])) {<BR>mat1[l][j] = i3;<BR>mat2[l][j] = v + mat2[i4][j - 1]; <P>if(l==200&&j==5) alert("l="+200+",j="+5+";mat2[200][5]="+mat1[l][j]+"i3="+i3);<BR>}<BR>}<BR>}<BR>} <P>mat1[l][1] = 1;<BR>mat2[l][1] = v;<BR>} <P>var k = numdata;<BR>var kclass=new Array(); <P>/* int[] kclass = new int[numclass]; */<BR>kclass[numclass - 1] = parseInt(data[data.length-1]);<BR>/* kclass[numclass - 1] = (Integer) data.get(data.size() - 1); */ <P>for (var j = numclass; j >= 2; j--) {<BR>var id = parseInt(mat1[k][j]) - 2;<BR>kclass[j - 2] = parseInt( data[id]);<BR>k = parseInt( mat1[k][j] - 1);<BR>} <P>return kclass;<BR>} <P>function doit(){<BR>var data = new Array( 9, 9, 9, 9, 8, 1, 9, 7, 6, 7, 10, 7, 7, 8, 5, 7, 8, 2,<BR>6, 6, 9, 10, 2, 2, 3, 9, 9, 1, 9, 1, 6, 7, 1, 9, 6, 5, 2, 8, 6,<BR>6, 6, 4, 1, 4, 10, 9, 6, 9, 9, 7, 10, 9, 6, 6, 6, 9, 3, 2, 5,<BR>10, 3, 9, 6, 1, 2, 1, 2, 7, 5, 2, 6, 6, 2, 7, 9, 9, 5, 4, 6, 4,<BR>1, 1, 5, 1, 4, 4, 2, 6, 9, 7, 3, 10, 4, 4, 9, 5, 5, 3, 5, 3,<BR>161, 136, 22, 113, 48, 114, 166, 33, 159, 182, 135, 22, 174,<BR>191, 60, 176, 1, 155, 62, 142, 185, 84, 140, 27, 111, 176, 189,<BR>24, 60, 29, 139, 20, 70, 172, 90, 120, 121, 173, 57, 138, 86,<BR>180, 143, 155, 35, 10, 136, 158, 26, 29, 136, 97, 193, 194,<BR>104, 147, 182, 44, 84, 139, 176, 16, 130, 168, 109, 182, 87,<BR>78, 115, 75, 32, 88, 131, 168, 89, 25, 160, 60, 72, 92, 129,<BR>159, 99, 5, 192, 6, 53, 15, 62, 176, 73, 129, 128, 34, 190, 95,<BR>19, 19, 196, 30 ); <P>/* var list = new Array();<BR>for(int i = 0; i < data.length; i++){<BR>list.add(data[i]);<BR>} */<BR>//Collections.sort(list);<BR>var text=document.getElementById("text");<BR>text.value="";<BR>var grade = getJenksBreaks(data, 5);<BR>for (var i = 0; i < grade.length; i++) <BR>text.value=text.value+grade[i]+","; <P>} <P></script>





火山写作
火山写作

字节跳动推出的中英文AI写作、语法纠错、智能润色工具,是一款集成创作、润色、纠错、改写、翻译等能力的中英文 AI 写作助手。

火山写作 167
查看详情 火山写作
相关标签:
java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号