若能与你化作星座,一起描绘星空中的梦想。|

janbar

园龄:4年5个月 粉丝:29 关注:10

随笔分类 -  算法

摘要:已经实现蒙特卡洛树算法的通用逻辑,只需要对应结构体实现相关接口就可以直接使用该算法。 优化算法主要优化GetActions生成下一步动作,要尽可能少,去掉无意义的动作。 以及优化ActionPolicy从众多动作挑选比较优秀的动作。对应五子棋就是执行该动作后当前局面评分最高。 package mai 阅读全文
posted @ 2023-04-01 20:47 janbar 阅读(213) 评论(0) 推荐(0) 编辑
摘要:前言 OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。 使用OpenCV可以方便的进行图像识别和图像处理,因此我打算学习学习。OpenCV在安装Python环境非常简单只需要下载opencv 阅读全文
posted @ 2020-10-29 10:51 janbar 阅读(275) 评论(0) 推荐(0) 编辑
摘要:前言 数独这个游戏很适合锻炼大脑思考,由于规则很简单,因此很适合我写代码拿来破解。所以就有了这篇随笔了。 首先我想通过自己的思考完成数独的求解,然后再到网上抄答案。提供一个【在线玩数独】的网站。 我的代码 代码讲解 我想通过自己的思路来求解,虽然网上肯定有非常巧妙高效的解法。因此我安装了HoDoKu 阅读全文
posted @ 2020-10-28 20:55 janbar 阅读(603) 评论(0) 推荐(0) 编辑
摘要:简单的代码 在我的笔记里面找到几种常用的排序代码,包括“冒泡排序、选择排序、二分排序、快速排序”。关于这些排序的原理,我之前是有专门研究的,网上也有很多教程。 package main import ( "fmt" "math/rand" "time" ) func main() { rand.Se 阅读全文
posted @ 2020-10-18 22:48 janbar 阅读(1794) 评论(0) 推荐(0) 编辑
摘要:前言 有时候发送http请求不想让库自动帮忙处理重定向,库里面默认的是会把所有重定向都完成一遍,结果就是最后一个没有重定向的请求的结果。因此需要一种方案直接获取首次访问的结果,不走重定向。go的http库里面是使用如下代码检查重定向的,以前我傻傻的修改源码让下面这段代码直接返回,这样需要重新编译go 阅读全文
posted @ 2020-10-14 13:15 janbar 阅读(1781) 评论(0) 推荐(1) 编辑
摘要:1.递归 当前节点不为空则交换左右子节点,递归非常直观。 func invertTree1(root *TreeNode) *TreeNode { if root != nil { root.Left, root.Right = invertTree1(root.Right), invertTree 阅读全文
posted @ 2020-09-20 10:32 janbar 阅读(218) 评论(0) 推荐(0) 编辑
摘要:GitHub地址 EncryptSqlite3 加密sqlite3数据库,产生的数据库文件别人打不开。 实现原理 在写入文件前对每个字节加密,这样存入文件的就是加密后的数据。 将从文件读取的数据每个字节都解密,这样就得到正确数据用于处理。 可以搜索c/sqlite3.c和go/sqlite3-bin 阅读全文
posted @ 2020-09-20 10:22 janbar 阅读(1909) 评论(0) 推荐(0) 编辑
摘要:1.使用cron库 需要使用的go库:【点击跳转】。 具体使用方法可以参照例子使用,下面主要实现计算接下来几次cron表达式执行时间。 package main import ( "flag" "fmt" "log" "time" "github.com/robfig/cron" ) func ma 阅读全文
posted @ 2020-09-20 10:18 janbar 阅读(2602) 评论(0) 推荐(0) 编辑
摘要:1.斐波那契 关于斐波那契数列的定义和应用网上已经有一大堆介绍了,可以去查一查。我以前只知道用循环和递归这两种方式求,但是最近发现一种矩阵乘方的方式来求解。因此就用C语言实现了这3中方式。 求斐波那契第n个数,循环 求斐波那契第n个数,递归(n大了后会有很多重复运算,不推荐) 矩阵法计算 #incl 阅读全文
posted @ 2020-09-20 10:15 janbar 阅读(521) 评论(2) 推荐(1) 编辑
摘要:1.不用加减乘除做加法 1.分析二进制加法规律: carry = A&B sum = A^B output = carry<<1 + sum = (A&B)<<1 + (A^B) 2.上面仍然用了加法,因此还要继续拆分加法,直到carry=0及没有进位结束 ╔═══════╤════════════ 阅读全文
posted @ 2020-05-17 15:25 janbar 阅读(133) 评论(0) 推荐(0) 编辑
摘要:1.说明 暴力法都知道,但是如果起始没弄好会忽略-99这个数更优的解法需要好的思路 package main import ( "fmt" "math" ) func main() { /** * 常规解法,暴力找到合适的数 * 因为a>=0 且 b>=0,因此i从-100开始 **/ for i 阅读全文
posted @ 2020-05-03 18:16 janbar 阅读(244) 评论(0) 推荐(0) 编辑
摘要:1.画出如下svg矢量图 G 1 1 2 0 1->2 3 2 1->3 4 4 2->4 5 0 2->5 8 6 4->8 9 7 4->9 14 3 8->14 10 1 5->10 6 4 3->6 7 5 3->7 11 6 6->11 12 5 6->12 13 4 7->13 2.放出 阅读全文
posted @ 2020-05-01 15:07 janbar 阅读(307) 评论(0) 推荐(0) 编辑
摘要:1.简介 熟悉二叉树的各种特性,包括前序、中序、后序遍历,以及还原二叉树等等主要搜集了递归和非递归方案,可以对比研究下学习这个也是为了再leetcode上刷题下面程序运行结果 <*>{1 <*>{2 <*>{0 <*>{3 <*>{4 <*>{0 <*>{5 }}}}}}} node = 1 l = 阅读全文
posted @ 2020-04-26 21:21 janbar 阅读(125) 评论(0) 推荐(0) 编辑
摘要:去除代码中注释需要注意下面几点 首先注释有”/*”开始到”*/”结束的多行或单行注释 其次还有”//”这种单行注释 另外还需要注意双引号和单引号内的字符不要算到注释中因此我设计以下程序 当遇到””“双引号和”’“时需要跳过整个字符串,特别注意字符串和字符内部转义字符。 当遇到”/“斜杠时,匹配下一个 阅读全文
posted @ 2017-12-15 15:59 janbar 阅读(574) 评论(0) 推荐(0) 编辑
摘要:本文之前由于技术不到位,写的比较挫,最近花了大半天时间写了一个高级点的版本。 这里是我写的代码,已经上传到github了。跳转到github 主要是使用了链表保存ini文件的内容,在程序运行最初会初始化链表,接下来的查询操作都只是查询内存,比较快,而且此时也不依赖文件了。最大的改变就是自己对编程的熟 阅读全文
posted @ 2014-11-13 20:11 janbar 阅读(148) 评论(0) 推荐(0) 编辑
摘要:本程序可以完美输出,效果如下: 相信你已经很期待代码实现了吧,其实代码真的不难,关键是思想。我说说我的想法吧,首先我构造了一个数组,保存了上面图片中字符一行的一半。聪明的你肯定看出来了,上面多数字符都是相同的,是的我只不过是一行一行的打印了这些重复的字符,当然是用下标访问那个数组了。我把上面图片看成 阅读全文
posted @ 2014-10-30 13:20 janbar 阅读(203) 评论(0) 推荐(0) 编辑
摘要:以下是代码的实现使用gcc已经成功运行了,下面是效果图 #include <stdio.h> #include <stdlib.h> #define OPT_ADD 43 /* + */ #define OPT_SUB 45 /* - */ #define OPT_MUL 42 /* * */ #d 阅读全文
posted @ 2014-10-30 13:00 janbar 阅读(104) 评论(0) 推荐(0) 编辑

FAVOURITE

点击右上角即可分享
微信分享提示
*✧⁺˚⁺ପ(๑・ω・)੭ु⁾⁾ 好好学习天天向上
进入亮色模式
进入亮色模式

FAVOURITE