自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (5)
  • 收藏
  • 关注

原创 【强化学习】关于PPO、SAC算法中价值函数的一些胡思乱想

最近的一些关于强化学习中价值函数的一些想法,发在了知乎上,全文考过来调公式有点麻烦,就直接发链接算了。

2023-11-28 18:10:15 518

原创 尝试了一种新的激活函数(灭活函数),似乎效果还不错

从数据拟合的角度出发思考神经网络,吸收工程上常用的分段拟合的思想,选择一种在有限范围内非0的激活函数,简化神经元之间的偶合关系。

2022-12-15 12:44:59 425 1

原创 初学GAN(WGAN-gp)生成直线的小实验,以及一个可能很有用的小想法——加校正的WGAN-gp

训练GAN时同时训练判别器和生成器,节省时间。使用一个学习得到的校正器,提高WGAN网络生成的数据的质量。

2022-03-27 21:13:23 5741 10

原创 对四元数旋转方法的一个更直观说明

听说现在搞空间控制都得学四元数,于是找了几篇文章看了看,但是一直二蒙二蒙的,前几天看到了《Understanding Quaternions 理解四元数》http://www.qiujiawei.com/understanding-quaternions/ 这篇文章,茅塞顿开,自己拿纸笔画了画,终于搞明白了。搞明白了以后,我觉得其实还可以写得再直观一点,再简洁一点,所以我决定试着挑战一下写一篇博客来看看能不能让小学生都能看懂四元数,一来巩固自己的理解,二来试一试用新学的LaTex写公式。...

2020-08-03 22:03:38 1013

原创 拉格朗日乘子法的一个极简解释

拉格朗日乘子法大家都学过,用来求带约束条件的极制问题,用起来着实简单,只是上学的时候只学会怎么用了,到底为什么这样能行是从来没想过的。最近在看B站机器学习课程,看到SVM这一段,用到拉格朗日乘子法,老师讲了半天,也不是很直观,有那么点感觉但还是没透,于是上网查了半天,看了各种解释,算是有点明白了,但是呢,还是不是很好理解,比如某乎上大多数人解释都是用函数的等高线与约束曲线相切的点为极值点,...

2020-04-29 23:22:57 1681 3

原创 一个2×2的正方形,每次在其中随机取两点,这两点的距离小于√2的概率是多少?

这是我很多年前第一篇在scdn上写的博客,只是当时不会贴贴图,所以图都没有,是个不完整的博客。今天突然想起还一直留着这个问题没填,所以重新把图贴上了。了个事。题目:一个2×2的正方形,每次在其中随机取两点,这两点的距离小于√2的概率是多少?分析:从题目看两个点正方形中的分布应是平均分布。第一个点落入正方形中任意点的概率是F1=1/S正,第二个点与第一个点是独立的,...

2020-03-26 20:33:17 1194

原创 数回(Slither Link)游戏的自动求解算法

数回是一个很有趣的智力小游戏,与数独游戏同属数字类的休闲小游戏,不过比数独要更轻松一点,更容易上手。前段时间我开始玩数回,在IOS和安卓上都有很多免费的数回小游戏,玩得不亦乐乎,不过后面难度大的玩起来就一点也不轻松了,需要进行大量的猜测,而这些软件都没有中途建立恢复点的功能,一旦猜错了想回退去往往忘了该回退到哪了,整个盘面一乱就完了。作为一个会编程的(连程序猿都算不上),就想自己编一个...

2020-03-03 16:14:17 8331

原创 过年宅家,学习wxPython,编了个数回(Slither Link)小游戏,踩了好多坑,特记一下

今年过年真是前所未有的有时间,哪都去不了,于是难得得有时间想学习一下,好多年没编程,没写博客,因为总是编嵌入式的c程序,对界面开发基本没搞过,过去只会用Borland C++,还是6.0,真是太过时了。好在还学过python,听说用python开发界面也很方便了,于是想学习一下,选了一个小游戏“数回”(Slither Link)来作为目标。本以为不会太麻烦,没想到一个不到千行的程序,让我踩...

2020-02-04 23:19:13 1304 3

原创 AES加密学习笔记(二)

接下来讲点编程实现上应该注意的具体问题。先回顾一下每轮运算的操作步骤:SubBytes(state)    对数据进行S字节变换ShiftRows(state) 进行行变换MixColumns(state)    进行列混合变换AddRoundKey(state, Keys[ 当前轮密钥组] )  与当前轮的密钥进行异或首先是S变换,当然计算机编程实现S变换的基本上都是用查

2011-10-29 19:46:57 9806 4

原创 AES加密学习笔记(一)

首先,关于AES加密资料最权威的是它本身的标准文件,在CSDN的下载上就有,叫AES+specification(fips-197).pdf,只是是英文的,看着比较累。    AES是对数据按128位,也就是16个字节进行分组进行加密的,每次对一组数据加密需要运行多轮。而输入密钥的长度可以为128、192和256位,也就是16个字节、24个字节和32个字节,如果用户输入的密钥长度不是这几种长度

2011-10-28 22:53:36 17342 2

原创 改进LZW压缩算法的一些想法(LZ77,双字典)

<br />  前几天用Python实现了一个LZW算法后,很自然的又想怎么样可以在不显著增加开销的前提下改进压缩率。在网上找了一些文章后,主要发现了以下的几种途径: 混合使用LZ77和LZ78。即在发现标记匹配结束后,不立即结束匹配,而是再在一个滑动窗口中寻找是否有更好的匹配,如果有就以{位置,匹配长度}组的形式写入输出流中,并把该字符串逐个增加为标记。在字典标记写满后,不立即清除字典,而是继续使用该字典,直到发现压缩率下降都到一定长度后再清除字典不清除全部字典,而是根据使用率清除部分字典<br />  

2011-01-25 21:16:00 8260 20

原创 用python实现的LZW算法

<br />  以前学习了一下GIF的LZW算法,不过只是学习了一下(见我以前的那篇博文《LZW for GIF算法原理和实现》),没有实践,也没有看看效果到底怎么样,因为现在ZIP库很多,基本上不需要自己写压缩算法了,LZW的压缩效果也比不上它们。不过最近有个嵌入式系统上的数据记录需求,希望把运行过程中采集的数据都记录下来,但是存储空间比较有限,处理器的能力也比较有限,是266兆的PPC,所以不能使用复杂的算法了,于是又想起LZW算法来,首先是采集的数据具有短时间内大量重复的特点,可以用简单的算法就达到很

2011-01-23 17:12:00 7632

原创 在widows下使用ioperm控制端口

     本人在工作中做了一些很简单的ISA板子,就只是几个地址,很简单的功能,原来都是用研华的设备的软件库,自己配置成一个自定义设备就行了,在Windows 2000下一直用着挺好的,最近新做一个设备,用到一块很老的板子,系统是WinXP,结果再用研华的软件就死活配不好了,只能在dos下用debug来调了。想想要是自己写驱动,得从头学起,对我这种软件菜鸟来说那就实在是太悲剧了,只能抱着希望上网去

2009-11-10 18:38:00 4640

转载 二进制格雷码与自然二进制码的互换

原始网页 http://www.pcdog.com/a/19/10/a210086.html 在精确定位控制系统中,为了提高控制精度,准确测量控制对象的位置是十分重要的。目前,检测位置的办法有两种:其一是使用位置传感器,测量到的位移量由变送器经A/D转换成数字量送至系统进行进一步处理。此方法精度高,但在多路、长距离位置监控系统中,由于其成本昂贵,安装困难,因此并不实用;其二是采用光电轴角编

2009-10-16 21:15:00 3126

原创 初学SVN之 用Python写SVN的钩子文件

    最近由于单位上一个工程,由于参与者来源众多,且软件经验都不足,而且由于硬件也在不断修改,结果弄得版本极度混乱,已经到不能忍受的地步了。于是只得寻找一个版本管理工具。经过一番搜索,图方便随大流的选择了VisualSVN Server和TortoiseSVN。经过几天的学习和熟悉操作后,我觉得我再也离不开版本控制了^o^。    下一步当然是把它装到单位里推广了,理所当然的我也要先负起管理

2008-10-02 15:01:00 12904 1

原创 查表法计算crc的python演示程序

 最近学习了一下crc, 发现其实挺简单的。用python写了个程序练习了一下,可以生成crc查找表,进行查表计算。为了验证,还写了一个按位计算的函数来对照。python写程序比较简单,语法也和C差不多,会C的应该都能看得懂。把下面这个程序存成一个.py文件就可以运行了。直接运行可以看演示。#coding=gbk 演示计算crc查找表方法,使用crc-itu 即0x1

2008-08-22 00:13:00 8191 1

转载 BAT批处理文件语法

BAT批处理文件语法  ==== 注 ======================================= .bat是dos下的批处理文件 .cmd是nt内核命令行环境的另一种批处理文件 从更广义的角度来看,unix的shell脚本以及其它操作系统甚至应用程序中由外壳进行解释执行的文本,都具有与批处理文件十分相似的作用,而且同样是由专用解释器以行为单位解释执行,这种文本形式更通用的称

2008-01-07 12:37:00 3110

原创 Python 正则式学习笔记

1. Python正则式的基本用法1.1基本规则1.2重复1.2.1最小匹配与精确匹配1.3前向界定与后向界定1.4组的基本知识2. re模块的基本函数2.1使用compile加速2.2 match和search2.3 finditer2.4字符串的修改与替换3. 更深入的了解re的组与对象3.1编译后的Pattern对象3.2

2008-01-02 21:11:00 65549 19

原创 LZW for GIF 算法原理和实现

LZW for GIF 算法原理和实现Why 2004-4-6       废话少说。先说LZW for GIF 的原理。       LZW是一个字典式压缩算法,他在压缩原始数据时,对每一个新出现的原始数据串赋一个数值作为标号,那么下次又出现了这个串后,就可以用这个值来代替了。比如 原始数据: ABCCAABCDDAACCDB      ,ABCD可以用0~3的数来表示。

2006-05-29 13:35:00 25255 24

原创 一个2×2的正方形,每次在其中随机取两点,这两点的距离小于√2的概率是多少?

题目:    一个2×2的正方形,每次在其中随机取两点,这两点的距离小于√2的概率是多少? 分析:    从题目看两个点正方形中的分布应是平均分布。第一个点落入正方形中任意点的概率是F1=1/S正,第二个点与第一个点是独立的,它落入正方形任意点的概率同第一点,既F2=1/S正。 第二点与第一点距离小于√2的概率F1,2=以第一点为圆心,√2为半径的圆与正方形重合的部分的面积S重/S

2006-05-29 13:28:00 6277 1

Slitherlink数回.zip

用WxPython开发的数回(Slither Link)小游戏,带有自动求解功能! 左键点击是连接或取消连接,右键点击是锁定或取消锁定该连接的状态,如果已被连上则加粗,如果是空白则打上红叉,表明被连接的状态是确定的 重点是自动求解功能。相信大家也不会真用这个软件玩数回,不过如果遇到了实在解不出的数回,可以把盘面输入到这个游戏中(修改levels.py文件,一看就明白了),然后点下solute…… 开发这个游戏的本意是设计一个自动求解数回的算法并验证,顺便学习一下python的界面开发。前前后后折腾了一个月,总算搞定了。 如有兴趣了解,可看我的blog。https://blog.csdn.net/whycadi 特别注意,需要wxpython库!

2020-03-02

AES加密算法学习笔记+代码

本人学习AES加密算法所写的学习笔记,同时还包括了本人学习过程中用Python语言编写的AES加密程序,该程序不考虑效率,为了便于学习,完全按照文档描述的过程来实现,并编写了大量注释。 另外附一个从网上下载的C++版本的代码,以及AES的英文版规范

2011-10-29

TComm串口类for CBuilder6

原来本人上传过一个串口类,虽然能用,不过后来发现有点小bug,所以又改了改。为表以前发表带bug的程序的歉意,这次就免分了。 自编的一个BCB的串口类,使用超级简单,当然功能也超级简单,支持10以上的串口,只支持全双工。不过对于大多数的使用情况来说是足够了。编这个的目的是由于自己下载的串口控件基本上都实现了太多的功能,弄得代码很复杂,不容易分析,本着能用就够和简单最美的原则,同时也为了学习串口编程,自己编了一个串口类。自己在几个程序中用着还挺好的。 该串口类就两个.cpp文件和他们的头文件 (TComm.cpp,TCommThread.cpp),使用超级简单#include "TComm.h"TComm Comm=new TComm(this); //生成串口类if(Comm) Comm->fCommReceived=&ReceiveFunc; //你的接收处理函数Comm->Open(1); //打开你要用的串口,可以填数字,也可以填“com1"等名称,建议填数字,可以支持超过10的数字Comm->SetComm( 波特率,字长,校验位,停止位 );//校样位0为无,1为奇,2为偶//好了,可以发数了Comm->SendData(data,leng);当收到数的时候会调用你的接收处理函数,比如ReceiveFunc(TComm *Comm){ char buf[256]; int len; if((len=Comm->GetReceivedCount())!=0){ len=Comm->ReadComm(buf,len); }}最后使用完后记得关串口喔 Comm->Close();上传的文件是一个包含有测试例子的项目,很简单的,看一看就明白了。

2009-11-10

cygwin的ioperm源代码和windows下使用其控制io的例子

Windows下面要控制IO是很麻烦的,我发现有人把Linux下的ioperm给移植到了windows下面,使用它来控制io就很简单了。只不过在网上没找到怎么在windows下面使用的说明,只能自己看了看例子,发现还是很简单的。于是就自己根据它的例子编了个小程序,原来的代码在C++ Builder下面不能直接编译成功,折腾了一天,总算搞定了。它的使用实在是简单,大家一看例子就明白了。大家可以直接把例子里面的函数拿来用,改改端口地址就可以使用到自己的程序里了。

2009-11-10

TComm串口类

自编的一个BCB的串口类,使用超级简单,当然功能也超级简单,支持10以上的串口,只支持全双工。不过对于大多数的使用情况来说是足够了。编这个的目的是由于自己下载的串口控件基本上都实现了太多的功能,弄得代码很复杂,不容易分析,本着能用就够和简单最美的原则,同时也为了学习串口编程,自己编了一个串口类。自己在几个程序中用着还挺好的。<br><br> 该串口类就两个.cpp文件和他们的头文件 (TComm.cpp,TCommThread.cpp),使用超级简单<br>#include "TComm.h"<br>TComm Comm=new TComm(this); //生成串口类<br>if(Comm) Comm->fCommReceived=&ReceiveFunc; //你的接收处理函数<br><br>Comm->Open(1); //打开你要用的串口,可以填数字,也可以填“com1"等名称,建议填数字,可以支持超过10的数字<br>Comm->SetComm( 波特率,字长,校验位,停止位 );//校样位0为无,1为奇,2为偶<br>//好了,可以发数了<br>Comm->SendData(data,leng);<br><br>当收到数的时候会调用你的接收处理函数,比如<br>ReceiveFunc(TComm *Comm){<br> char buf[256];<br> int len;<br> if((len=Comm->GetReceivedCount())!=0){<br> len=Comm->ReadComm(buf,len);<br> }<br>}<br>最后使用完后记得关串口喔<br> Comm->Close();<br>上传的文件是一个包含有测试例子的项目,很简单的,看一看就明白了。

2008-06-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除