- 博客(6)
- 收藏
- 关注
原创 java中线程的使用
首先,介绍一个接口Runnable,这个接口里面有一个需要重写的run()方法,你可以implements这个接口,然后将你需要执行的代码块放入重写的run方法中,然后你就得到了一个任务类,这个任务类可以创建任务对象,任务对象可以输入给执行类,然后它会开一条线程来执行这个任务类的run方法。创建:使用ExecutorService类,创建时共有7个参数,分别是核心线程数量,最大线程数量,临时线程的存活时间,存活时间的时间单位,任务排队队列,线程工厂,线程池的拒绝策略。(1)Callable任务类。
2025-07-12 18:48:10
340
原创 使用Q-learning 算法实现飞扬的小鸟ai
通过我们的奖励规则,我们知道,很多时候小鸟到达的状态都是没有奖励值,且在前期,很多状态的最优决策值都是0,如果直接在决策后直接更新Q函数,会发现并没有使Q函数改变,说明这是一个无用的操作,我们希望在训练的过程中尽量减少无用操作,所以我们先不更新,并将这一过程储存起来,就是记录(s,a,s',r)(转移前状态,进行的决策,转移后的状态,奖励值),当收集了一部分的操作数据后,我们再从中采集一些进行更新,这样我们就可以着重用那些有用的操作(奖励值不为0)进行更新。那么机器该如何归纳呢?
2025-05-18 14:01:27
512
原创 用c++实现神经网络拟合任意函数
让我们一步步来,首先我们先假设现在已经有一个确切的表达式,但是这个表达式的和目标曲线的差别很大,那我们要做的就是调整它里面的参数,以此是误差尽可能的小,因此我们希望:1.每次通过在某点的误差来了解各个参数是应该变大还是变小,2.而且变化量最好与这个参数对误差的影响成正相关,即该参数对误差的影响越大,它对应的变化量就要越多,反之越小,3.最好所有变化量都与误差大小成正相关,即误差越小,变化量越小。的(-2,2)的这部分的曲线(由于r(x)的增长部分是线性的,不可能完全拟合指数型函数,因此只能拟合某一个区间)
2025-03-05 12:25:20
943
原创 基环树找环
然后当我们遍历到了一个灰色点时,就代表这个点之前被遍历过,这就意味着,我们找到了一个环上的点,且在遍历过程中经历了整个环,这时我们将这个点记录下来,记为start,然后直接返回一个true,代表我们已经找到环了,而返回到的点一定也是环点,(因为从start开始的搜索树中,与环点相连的环节点,它们的父节点一定环点,所以它们的子节点不可能是环点,那么这棵搜索树中环点的父节点不可能是环节点)那么我们就将返回过程中的点一一记录,直到我们返回到start为止。使用dfs,深度优先搜索。
2024-11-14 18:24:27
837
原创 康托展开与逆康托展开
在这个例子中,我们知道a1=2,知道p2=3,即a3~a5中有3个比a2小的数,那么a2不就是1,3,4,5中第4大的数,就是5,据此我们可以依次得到后面的数分别为1,3,4中的3,1,4中的4,最后得到a5=1。=1+p,p为一个小于1的小数,取整后是不是能得到1这个数,即a1-1-q1,由于q1=0(第一个数的前面没有数),那a1就=1+1=2。当为2时,我们就得看第二个数,可以是1,3,4,5,不能为2是因为2已经被第一个数用了,当第二个数为1,3,4,后面的数无论怎么排,都是小的,有3!
2024-10-13 21:35:40
1387
原创 按钮的使用
首先,我们需要创建一个特殊的类(class),需要在后面加上“implements ActionListener”众所周知,按钮是一个软件中极其重要的组成部分,是互动性的关键,那么怎么样才能在java中设置一个可使用的按钮呢?即让这个按钮添加上“ac”这个触发机制,当然我们也可以让按钮添加上其他的触发机制,那就需要多写几个类了。当按钮被点击时,这个函数就会被触发,因此我们可以在这个函数中加入我们想让按钮被按后触发的操作,比如。当然只是这样会报错,我们需要在里面加上一个特殊的函数,只有这样才不会报错。
2024-08-16 15:38:28
467
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅