- 博客(36)
- 资源 (1)
- 收藏
- 关注
原创 视觉图神经网络ViG杂谈(附带图结点及其近邻可视化)
视觉图神经网络ViG杂谈,介绍模型的核心模块和实验心得,附带可视化图结点及其近邻结点。
2025-01-02 16:14:12
1104
6
原创 最邻近方法和最邻近插入法求TSP问题近似解(可视化+代码)
本文总体内容为介绍用最邻近方法(Nearest Neighbor Algorithm) 和最邻近插入法求解旅行商问题(Traveling Saleman Problem,TSP)。同时使用python实现算法,并调用networkx库实现可视化。此文为本人图论课下作业的成品,含金量:无。
2023-01-03 18:13:57
4356
7
原创 对数据结构中共享栈减少上溢的理解
目录共享栈的定义为何使用共享栈栈满后记共享栈的定义简单说就是两栈共用一片连续内存空间。(王道书定义:)共享栈就是让两个顺序栈(一片连续内存,栈就是顺序栈)共享一个一维数组空间,将两个栈的栈底设置在共享空间的两端, 两个栈顶向共享空间的中间延伸。 如图所示(再嫖张王道书的图):为何使用共享栈首先介绍一下上溢和下溢,对栈而言:栈满还存为上溢,栈空再取即下溢。上溢和下溢都修改了栈之外的内存,因此有可能导致程序崩溃。那有人就会说,那我给每个栈都分配足够大的空间就能解决上溢了吧?这么说确实有道
2021-08-25 12:38:15
7325
4
原创 递归实现删除单链表中值为x的结点以及对“不断链”的解释
题目设计一个递归算法,删除不带头结点的单链表L中所有值为x的结点。代码实现void Del_X(Linklist &L,ElemType x ){ LNode *p; //用p来存储待删除的结点的指针 if(L==NULL) //递归的出口 return; if(L->data==x) //找到待删除结点 { p=L; //删除*L结点,并将L指向下一结点 L=L->next;
2021-03-18 01:52:59
3523
6
原创 斐波那契数列的实现以及时间复杂度分析
题目:java实现class Fibonacci{ //递归 public static int fibonacci_recursion(int n){ if(n==0||n==1){ return 1; } if(n>=2){ return fibonacci_recursion(n-1)+fibonacci_recursion(n-2); } return
2021-03-05 13:07:25
1058
3
原创 KMeans算法实现步骤介绍及Python代码
KMeans算法的步骤对于给定的一组数据,随机初始化K个聚类中心(簇中心)计算每个数据到簇中心的距离,并把该数据归为离它最近的簇。根据得到的簇,重新计算簇中心对 2、3 进行迭代直至簇中心不再改变或者小于指定阈值...
2020-08-18 18:07:53
7187
3
原创 KMeans算法的Python实现
结果展示代码中自带例子中的一个二维散点聚类。Python代码import numpy as npimport matplotlib.pyplot as pltplt.rcParams['font.sans-serif']=['SimHei']plt.rcParams['axes.unicode_minus']=Falsefrom sklearn.datasets import load_irisimport randomclass K_Means(): def __ini
2020-08-18 18:03:08
2610
3
原创 JAVA打字游戏代码
新建一个项目,然后在src里面建一个MyGame.java文件,把代码粘到刚才新建的MyGame.java,然后把两张图放到src下,就行了一、代码import javax.swing.*;import javax.swing.event.ChangeEvent;import javax.swing.event.ChangeListener;import java.awt.*;import java.awt.event.*;public class MyGame { stat.
2020-08-02 10:55:27
5304
8
原创 信息量、信息熵、信息增益的理解
1.信息量公式由来当我们知道一件必然会发生的事情发生了,因为反正这件事情会发生,因此可以认为我们没有接收到信息。但是要是–件平时觉得不可能发生的事情发生了,那么我们接收到的信息要大得多。我们对于信息内容的度量就将依赖于概率分布p(x)。因此,我们想要寻找一个函数h(x),来表示信息的多少且是关于概率分布的单调函数。而且,h(x)需要满足下面的性质:1.h(x)>=0,因为h(x)表示的是得到的信息量的多少,应该是个非负数。2.一个具体事件的信息量应该是随着其发生概率而递减的,事件越容易发生(
2020-07-25 21:37:57
13148
1
原创 KNN算法的理解以及Python实现
参考大佬文章https://blog.youkuaiyun.com/c406495762/article/details/75172850文章目录1.KNN算法的个人理解2.KNN核心思想3.KNN的实现代码4.例子5.KNN的优缺点6.上面例子的测试代码1.KNN算法的个人理解个人感觉KNN算法(K-NearestNeighbor)一种极其简单粗暴的分类方法,举一个例子,比如说你想知道一个人是不是喜欢打游戏,就可以观察他最亲密的几个朋友是不是都喜欢打游戏,如果大多数都喜欢打游戏,可以推测这个人也喜欢打游戏.
2020-07-23 09:47:21
1252
原创 KNN的Python实现与测试
海伦约会数据集链接代码import operatorimport numpy as npimport matplotlib.pyplot as pltplt.rcParams['font.sans-serif']=['SimHei']plt.rcParams['axes.unicode_minus']=False#导入数据def getdata(url): fr=open(url) alldata=fr.readlines()# 将所有数据存储在列表中 allda
2020-07-23 09:42:43
472
原创 模糊C均值聚类(FCM)算法介绍及其Python实现
本人由于懒得排版,便将一部分内容用图片的形式上传,如果有需要可以@楼主目录一、理论介绍二、算法实现思路三、FCM算法核心代码的python实现四、使用示例1.对数据进行聚类2.图片分割五、实现时出现的错误总结六、源码链接一、理论介绍二、算法实现思路下面给出该算法的基本思路: 1.可以先初始化一个隶属度矩阵U(每个样本对各个类的隶属度和为1)。 2.根据U开始对类中心矩阵C进行计算。 3.再根据C计算U。 4.循环2,3步骤直到满足循.
2020-07-22 16:55:33
19192
14
原创 FCM的python实现代码
第一个文件(FCMTEST.py)import numpy as npimport matplotlib.pyplot as pltplt.rcParams['font.sans-serif']=['SimHei']plt.rcParams['axes.unicode_minus']=Falseiter_num=20m=2class FCM: def __init__(self, data, clust_num): self.data = data
2020-07-22 16:53:14
8439
13
原创 JAVA打字游戏的实现
前言规则如下:游戏开始后,屏幕上方同时有四个数字分四列下落,每个数字由三位组成(随机生成,但首位不可相同)。玩家用键盘依次输入数字,如果输入的数字序列与某一-列正在下落的数字三位全部相同,则给玩家加10分,该列数字消失,该列新产生数字并下落;如果输入的数字某一位不相同,则输入的数字序列全部作废,重新接收输入。某一列数字到达屏幕底部则游戏结束。本人将在此基础上对游戏进行一点修改建议将源码与下面的实现方法一块进食效果更佳。。。目录后记除了实现上述的功能外,其实还可以再加上其他的功能,比如实现列数
2020-07-07 14:29:13
2343
1
原创 打字游戏之闪烁功能的实现
实现功能当按开启闪烁按钮时,四列数字会进行闪烁(每隔一段时间消失一段时间,然后再出现一段时间)。效果如下:实现方法1.闪烁的原理 要让数字发生闪烁,其实只要设置一个记录时间的变量,每次在run函数结束后记录一个结束时间,然后看看经过多少时间,如果时间满足一定条件,则绘出数字,否则,不绘出数字,这样子就能形成间隔一段时间闪烁。2.闪烁功能的实现新建一个Boolean变量shanshuoflag来判断是否是闪烁模式。你也可以设置
2020-07-07 11:31:37
584
原创 打字游戏之游戏难度调节
实现功能1.达到一定分数游戏难度自动增加2.添加滑块来自主调节难度 滑块的使用方法请点击此处实现方法1.新建一个difficult_level来表示下落难度等级,掉落的速度其实就是重绘的速度。只需用difficult_level来减小重绘时间间隔,即可实现下落速度变快。2.给滑块添加监听器,然后将difficult_level修改为当前滑块所在的值即可实现效果...
2020-07-07 11:30:16
1114
原创 打字游戏之暂停与结束
实现方法:暂停功能本人的目标是实现输入空格时数字暂停下落并且屏幕显示出暂停的字样。实现方法:引入一个Boolean类型变量terminateflag来判断当前游戏是否处于暂停状态新建一个Boolean类型变量terminateflag来判断当前游戏是否处于暂停状态。我们需要在输入框的键盘监听器中的方法实现该功能,在KeyPressed中加入如下代码来实现修改terminateflag。 if (e.getKeyChar() == KeyEvent.VK_SPACE) {//判断输入是否为空格
2020-07-07 11:28:28
927
原创 打字游戏之规则介绍
规则模块的功能点击主界面的规则按钮后会自动弹出如下窗口:实现建立一个JLabel来存储规则的文本(用JLabel可以让文本无法被直接编辑)。然后往一个新建的窗口中添加该JLabel,当点击规则按钮时,只需要将新建的窗口的setVisible设为true即可。ps:JLabel添加文字时的自定义换行语句:格式:"<html><body>"+内容+"<br>"+内容+"<br>"+........+内容+"</body></ht
2020-07-07 11:26:33
1456
原创 打字游戏之输入框功能的实现
要求①输入三位数自动与屏幕中显示的数字比较,若相同则消除并重新生成数字,记录得分②输入空格暂停,暂停时输入任意字符继续游戏实现方法新建一个JPanel,并在其中添加一个JTextField来获取输入的内容。①实现功能输入三位数自动提交往JTextField中添加一个继承适配器抽象类的匿名内部类来监听键盘事件。键盘监听的方法有KeyPressed()、KeyTyped()、KeyReleased()。下面我先进行一个测试,测试在这些方法中获取的文本框内容的差别:先输入数字4,再输入数字5,
2020-07-07 11:24:25
793
原创 打字游戏之数字掉落界面的实现
实现效果请看含有背景的部分,如下:实现方法1.用线程实现字符的下落请参考)))))))))))))))))))))2.生成四列不同的三位数每个三位数首位不相同,可以保证不会生成相同的三位数,防止后期输入一个数字同时消掉多列。用Math.radom()函数可以生成0到1之间的随机数。用三个数组存储四个数字的横坐标,纵坐标和数字的字符形式。(记得比较每个数字的首位是否相同,相同则重新生成)产生四列不同三位数的实现代码如下: public static void getrandnum() {
2020-07-07 11:19:47
1052
原创 打字游戏之选择生命值功能的实现
实现效果:实现方法:新建一个按钮组(实现互斥选择),然后将三个按钮添加进按钮组中,再将三个生命值选项按钮添加进一个JPanel,再将三个按钮添加进JPanel中。再添加一个开始的按钮为实现正式开始游戏做准备。下面只给出了实现互斥选项的代码:本人使用的是在面板上绘出爱心个数来表示当前生命值,以生命值为3为例,实现的效果如下:实现方式是在用线程实现数字掉落的类(这个类我们现在不必知道,等后期我们会讲到)中的一个paint()方法中在指定位置根据当前生命值绘出正确个数个爱心。 Image li
2020-07-07 11:18:40
549
原创 打字游戏之主界面实现
效果展示:实现方法:1.窗口添加背景图窗口添加背景图实现方法2.打字游戏标题的自动下落标题的自动下落其实上也是打字游戏的精髓代码之所在,只要理解了如何实现标题下落,那么数字下落问题也可如法炮制。实现标题自动下落的本质实际上就是将标题画在一个画布上,然后擦掉标题,修改标题位置后再次重绘,只要反复重绘的速度够快,就形成了标题在自动下落的感觉。实现方法是新建一个JPanel的子类(为了实现重绘)并且实现runnable接口(等等为了新建一个线程,让标题下落和其他的任务可以并发执行)/*在一个
2020-07-07 11:11:33
1555
原创 JAVA中图片缩放getscaledinstance使其自适应JFrame
image getscaledinstance(int width,int height,int hints)创建此图像的缩放版本。返回一个新的 image 对象.如果 width 或 height 为负数,则替换该值以维持初始图像尺寸的高宽比。如果 width 和 height 都为负,则使用初始图像尺寸。参数:width - 将图像缩放到的宽度。height - 将图像缩放到的高度。hints - 指示用于图像重新取样的算法类型的标志。...
2020-07-01 23:34:45
10322
原创 俄罗斯乘法的个人理解及JAVA代码
俄罗斯乘法是一种计算两数相乘的算法。我个人的理解该算法是:将一个数以二进制的位权展开形式来表达后,再乘以另一个数。比如 10×15=( 1×23+0×22+1×21+0×20)×15。下面举个例子说明一下俄罗斯乘法的具体步骤。计算10*15过程首先将左边的数除以2(如果左边的数是奇数那就减1再除以2) ,右边的数乘以2,如此循环直到左边的数变为1。列完可得上图。然后选定左边一列为奇...
2020-03-25 14:44:34
1644
原创 用MNIST数据集实现K-折交叉验证
基本思路K-折交叉验证的方法是将数据集分成k个互斥的子集(一般是均分),然后将每个子集分别做一次验证集,其余K-1组子集作为训练集。在每次训练完的模型后进行验证来对模型性能进行估计。应用的函数tf.range()tf.range(start, limit, delta=1, dtype=None, name='range')功能是创建一个开始于 start 并且将以 delta 为...
2020-02-12 13:19:38
4512
3
原创 用MNIST数据集实现简单交叉验证
重点在于将数据集元素的再次划分。将数据集中的训练集分成训练集和验证集两部分。主要使用tf.split()函数。主用途是把一个张量分成几个子张量。tf.split( value, num_or_size_splits, axis=0 }value为准备切分的张量num_or_size_splits用来确定切割方式axis指切割的维度分割方式分为两种:如...
2020-02-11 21:29:15
2716
2
原创 预处理数据集时遇到的问题
以MNIST数据训练集为例,本人在将数据集切片后,发现batch(实现数据的分批),map(对一个序列的每一个元素用一个function处理,形成一个新序列)对一个对象的作用位置不能随意摆放,还与map中的function有关系。例子:def preprocess(x, y): x = tf.cast(x, dtype=tf.float32)/255. x = tf.resh...
2020-02-10 17:32:50
1118
原创 TensorFlow2前向传播碰到的unsupported operand type(s) for *: ‘float‘ and ‘NoneType‘问题
在用TensorFlow2学习前向传播过程中碰到了unsupported operand type(s) for *: ‘float’ and 'NoneType’的问题本人原出错代码如下:import tensorflow as tffrom tensorflow import kerasfrom tensorflow.keras import datasets(x, y), _ =...
2020-02-08 15:15:56
12626
6
原创 tensorflow2中的tf.data.Dataset.from_tensor_slices()
tf.data.Dataset.from_tensor_slices()函数的参数是tensor。该函数的作用是接收tensor,对tensor的第一维度进行切分,并返回一个表示该tensor的切片数据集以minist训练集为例:x的shape为(60000,28,28),将x作为参数传递给tf.data.Dataset.from_tensor_slices(),将返回一个含有60000个...
2020-02-06 21:59:20
3392
原创 Logistic回归算法笔记
Logestic回归算法笔记前言对于分类问题,比如二分类,输出y一共分为负类(记为0)和正类(记为1),即 y∈{0,1}。如果使用线性回归的方式解决,如果存在与同类样本中特征差别较大的个体,可能导致的得到的假设函数 hθ(x)h_θ(x)hθ(x) (θ为待优化参数) 的分类效果较差。Logestic 函数的引入符号引入:m为训练样本个数n为特征变量个数θ=[θ1[θ_1[θ...
2020-01-22 20:50:10
1700
1
打字游戏JAVA.zip
2020-07-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人