开源/成品: C语言课设作业 – 北斗神拳游戏

在夏树鸽掉的这几个月时间, 也不完全是在忙课设, 大部分时间都在上网课, 花在这个课设题目的时间上还挺少。这次的小组课设游戏主题是“北斗神拳”, 开工时间大概是在上周三, 截止到周五下午七点左右吧, 虽然很简单, 但是还是在博客这边留个纪念, 我的大一生活呀。

继续阅读开源/成品: C语言课设作业 – 北斗神拳游戏

夏树的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类聚算法实现对点集的分组

用简单的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

(完)