夏树的C语言篇 – 简易Kmeans类聚算法实现对点集的分组

0.写在前面

夏树大一上学期为时一周的C语言课设就在昨天周五结束了。其中印象比较深刻的就是课设中有一题运用Kmeans算法对点集实现分组的题目啦(顺便自己试着摸了下GDI的一些函数),然后今天抽出些时间来整理一下,先上最后实现的结果:

kmeans-best-grouping_1.jpg

kmeans-best-grouping_2.jpg

1.问题描述

随机生成一组位于二维坐标系的点集(15<=点集元素个数N<=65),这些点不重合,每个点的位置由x,y值决定,x,y为整数且0<x<80,0<y<40。现在想知道这些点按距离远近该分成几个组合适,已知分组值K备选范围从1-10,输入K值,请你按以下方法画出分组结果:

  • (1) 从N个数据点中随机挑选K个不同点作为K个组的初始中心起点(组中心);
  • (2) 计算所有点到K个组中心的距离(欧式距离),并把它归到距离最近的组(如果有多个组距离一样,随便选一个归入);
  • (3) 更新K个组的中心值(求出该组所有点的x平均值和y平均值,作为新的组中心);
  • (4) 重复(2)~(3)步直至新的组中心和原来的组中心差值小于指定阈值(人为设置),或超出最大重复次数(人为设置),算法结束;
  • (5) 在控制台画出K组分组结果,每组用不同数字表示,使用0,1,2,3….9分别表示10个组。

继续阅读夏树的C语言篇 – 简易Kmeans类聚算法实现对点集的分组

小白: 从零开始使用fail2ban

0.内容导入

(´• ᗜ •`) ◞因为作为一个linux入门级别的小白, 很多人都会把一些web面板(比如宝塔面板?)作为自己管理vps的首选, 而当我一段时间登录宝塔面板之后, 有时就会看到提示发现自己的SSH登录竟然失败了上万次! 可这都不是我干的呀(我不是我没有!) 如果自己的SSH密码真的被暴力破解了怎么办呢? 那么…试试fail2ban?

继续阅读小白: 从零开始使用fail2ban

[转载]flex布局语法教程

网页布局(layout)是CSS的一个重点应用。

布局的传统解决方案,基于盒状模型,依赖 display属性 + position属性 + float属性。它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现。

2009年,W3C提出了一种新的方案—-Flex布局,可以简便、完整、响应式地实现各种页面布局。目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能。

Flex布局将成为未来布局的首选方案。本文介绍Flex布局的语法。

继续阅读[转载]flex布局语法教程

用简单的VBS脚本保持校园网VPN连接

剧情提要

这是在n次清空博客之后的第一篇文章。

为了在今后针对软件工程学科的学习中打好基础(为了在排行榜上出租广告位),就要在学院的OJ上努力刷题。

因为我们的宿舍在校外,好像并不能很好的享受刷OJ的过程中还能进行其他的网页浏览操作(最早的话是只挂上锐捷认证,而不进行宽带连接来访问OJ);后来在发现连接学校的SSLVPN的时候,可以一边访问校园网一边又不会断网:-D,但是这样还是有点缺点的,比如一段时间不访问校园网的话,就会提示登录超时,然后就需要断开连接重新登录,脑阔疼
sslvpn_timeout

解决办法

咳咳,原本想用C语言摸(抄)一个的,结果好像回到家里这台电脑用的devc++并没有sys/socket.h这个头文件,遂放弃。

然后就开始打起了vbs脚本的主意,毕竟实现起来还是比较简单的✔(记事本编程大法)

function keeper()
    dim http
    set http = createobject("Msxml2.ServerXMLHTTP")
    http.open "GET","http://x.x.x.x/JudgeOnline",false
    http.send
    wscript.sleep 30000
    keeper()
end function
keeper()

原理的话大概就是,每30秒调用一次自定义的keeper函数,让keeper函数在后台向校园网的OJ发送get请求

咳咳,原本还想着用if判断http.status来决定要不要提示网络连接失败然后退出什么的,但是vbs会自动在连接不上校园网的时候跳出执行超时然后退出,就没有必要多此一举了。
vbs_timeout

(完)