自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

i saw you walking in the rain

i crying in the rain for you

  • 博客(200)
  • 资源 (4)
  • 收藏
  • 关注

原创 习题2.2

在这个例子中,我没有看明白数据抽象在哪里,如果说用函数来屏蔽了代码的细节,形成了抽象屏障,那也是将就可以理解。通过4个函数,屏蔽了上层对数据细节的关注。没有刁难程序,直接用 1,1 3,3两个点 ,人工计算结果也是2 ,2 与预期相符,计算过程正确.写出如上代码很简单计算过程也是很简单的,我就不多说。本章的目的是学会如何进行数据抽象。

2025-03-31 17:35:32 21

原创 习题2.1

对以上代码做点解释,frist和last这块是语法不同导致的。使用list而不是是cons,是因为Clojure语言中cons 最后一个元素需要是list类型,与原来语言的含义不同。make-rat的核心代码部分,使用 n 和d的乘积来判断他们是同号还是异号,同号则分子分母均取abs即可,异号分子先取绝对值,再变为负号,分子直接取绝对值。只是为了代码好写才如此处理的。从结果可以看出,函数能正确约分并输出分数的正负号。需要注意一点,再求gcd的时候,输入参数需要均为正数,否则会出现错误。

2025-03-30 18:27:14 31

原创 习题1.26

之所以会从对数级变成线性级,主要原因在于代码的展开方式,在使用square方法的时候,先计算一遍expmod 函数内的值,然后对计算结果进行平方计算。在使用乘法的时候,是计算了两次expmod函数内的值,然后再将结果进行相乘计算,在偶数的情况下 每次都会将同一个运算多做一次。假设我们要计算的exp为1024,那么使用square总共要计算expomd表达式10次,即以2为底1024的对数。使用乘号的话,需要2+4+8+++1024=2046 ,可以简略看做2*1024也就是线性级函数。

2025-03-30 16:35:18 147

原创 习题1.43

这个题目,费了一些时间,写了几个版本,都达不到目标,虽然对题目的理解很到位,也知道要解决这个题目,应该是什么模式。还是费了很多功夫折腾。最后还是注意到提示部分,才明白应当如何实现题目。执行结果如下.代码实现了对5^2进行了平方,即对平方操作执行了两次。compose方法上篇文章已经实现过。代码如下,确实非常简单。

2025-03-29 19:08:39 59

原创 习题1.41-1.42

不纠结名称,系统函数包含了,改个名。别怀疑了,代码也是执行过的。不做太多解释了,上代码。

2025-03-26 13:51:06 152

原创 编写一个java小工具踩的坑

经过debug发现原来最后一次读取的长度不够2046个byte,上次读取的内容没有清空,导致转换为sql后,长度远超原来的字符串。读取终于没有问题了,开始整输出代码写完直接执行,只检查了生成的几行sql,没有问题,以为已经OK,于是丢去补数据。这一版又出现了个诡异的现象,直接用idea运行,可以正常读取解析,使用命令行执行,imix包会提示field长度解析异常。整体思路是,先从日志中拿到imix报文,保存为txt,然后用java读取,直接转换为insert语句保存为sql文件。

2025-03-11 18:17:39 139

原创 习题2.41

这个题目初看非常简单,但是在两个点卡主我了。一个是如何把第二个参数传递给filter的过滤函数。二个是生成三元组,生成不重复的三元组。开始想的太简单了,实现后生成的三元组有重复。认真思考,决定采用模拟二元组的办法进行嵌套。第一个问题,一开始我想到了用闭包来解决,但是受到java中闭包使用方式的影响,首先尝试的是在内部方法中直接使用外部参数。失败后,查找资料后解决。

2024-10-27 15:36:10 172

原创 习题2.40

只是对前面题目的简化,需要我们思考代码执行的逻辑,然后进行修改。

2024-10-27 15:16:19 76

原创 在window10下使用directml加速phi-3模型的一些记录

有两点要特别讲一下,第一,可用使用 torch_directml.device_name(0)来查看具体使用的是哪个显卡。3.参考微软官网【在windows上通过DirectML启用Pytorch】文档,安装torch_directml模块。4.参考微软官网【在windows上通过DirectML启用Pytorch】文档,验证设备是否可用。最后要说明一下,我上面的代码并没有进行完全验证,主要是在执行到加载模型处,因显卡内存不足,程序退出。文档,检查系统版本 检查gpu版本。5.下载phi-3模型。

2024-10-06 15:00:59 535

原创 习题2.38-2.39

但是这块代码和2.18版本的代码比较一下,能更深刻的理解accumulate运算过程。将这些问题与java中的函数式编程合起来思考,会发现lisp写起来真的很方便,得益于数据结构。list结构、first、rest、cons 操作,会极大的简化代码。list结构,像是链表,但是又比链表强大,链表无法组装出树结构。执行结果呢已经写在了注释里,要想让op的操作左右相同,必须满足交换律。通俗点说,就是两个参数交换,不影响计算结果,比如加法,乘法 与运算 或运算等等。这个题目的结果挺简单,上代码。

2024-08-16 15:35:24 172

原创 习题2.37

如果对矩阵运算非常熟悉,这段代码非常容易补足,略微思考一下就行。需要注意的是,这道题的map,可以使用原生语言提供的,反而不能使用以前题目中自己写的map。代码中的w 和v是用来测试的数据,都能正确的执行。执行结果也有人工核算。矩阵乘法实质就是逆转第二个矩阵并遍历,进行矩阵向量乘法。而矩阵向量乘法实质就是遍历矩阵的行,和向量进行点积。部分代码有使用以前题目写过的,我没有复制过来。

2024-08-16 15:14:19 90

原创 习题2.36

【代码】习题2.36。

2024-08-15 13:19:12 40

原创 习题2.35

于是就回归map返回所有叶子节点。在map中也是因为无法递归,无法将树转换为一维list,想了想,定义了cons2方法,可是用系统原生 的map,无论如何调整,都无法把树形结构改成list。忽然想到可能是语言实现层面的差异,于是使用2.33中的map,发现居然一次性就成功了。代码马上就跑出了正确的结果,为了以防万一,还测试了几个特别复杂的结构,均正确计算出了结果。在编写的过程中,犯了一个很严重的错误,导致消耗了我2个小时,就是使用了系统原生的map方法,而不是2.33的map方法,导致执行一直出错。

2024-08-14 09:35:59 57

原创 习题2.34

这个题目,我真的费了好多时间,总结起来,就是对公式理解不到,好不容易理解了公式,又出现计算结果有偏差的情况,反复思考折腾代码,都毫无结果。于是先写了一版自己理解的公式,按照自己的思路写,结果无误,但是无法按照题目要求改造好。唉,唯一的缺陷就是a0要特殊处理。昨天晚上灵机一动,重新思考了公式的本质,立刻想到了办法。很典型的实现逻辑 没有什么复杂的技巧,之所以要定义内部函数,是因为我理解的公式,a0需要特殊处理。心得,遇到问题,还是要先从业务层面思考,需要思考透,才能写出更好的代码,简洁 高效,易修改。

2024-08-14 09:23:17 179

原创 习题2.29

题目终于想通了,贴代码吧,代码只做了浅层数据结构测试,不是很确定更深层次的数据会不会也是成功的。从对比代码看来,修改的主要是跟结构相关的部分,计算部分并没有涉及到。

2024-08-11 10:14:59 53

原创 练习2.33

这个题目比较简单,直接上代码.

2024-08-09 15:23:05 50

原创 练习2.19

不会影响,相当于求排列组合,元素的起始顺序,并不能影响排列组合组数。随机调整顺序后,执行结果如下。

2024-08-09 15:00:14 63

原创 习题2.32

map的第一个参数,是遍历并执行的方法,这个方法使用s的第一个参数,与map遍历时传入的参数合并形成新的序列。这个题目 粗看起来好像是很简单,但是我在实现的时候,真的是废了好大的力气,主要原因有三点,第一,对clojure语言的属性程度不够高,第二,课本语言与clojure语言的差异点,我自以为理解的很透彻,导致了出现很奇异的现象,我找不到解释,一点思路都没有。当if为真时 返回给上一层调用的内容为(()),(())和其他元素做concat就是(() (3) (2)( 2 3))。

2024-08-05 18:26:14 174

原创 习题2.31

相当于将方法以参数的形式传递给方法内部,并在适当的时候调用。这也是函数式编程中经常提及的高阶函数的用法。为后面解释高阶函数做铺垫。对比下原来的做法,实际上就是在原来代码中(square tree) 变成(op tree),其他部分没有变化。题目实际上是想让我们将树的遍历与平方操作分离开,以方便我们实现树的其他操作,比如立方,自加之类的操作。题目的难点是理解op参数应该在什么时候调用。理解透以后这个题就非常简单。

2024-08-05 14:57:17 183

原创 练习2.30

最终能写出第二版,多亏了我沉下心思考了,map和square-tree的调用关系,并在repl窗口手工执行map 查看输出结果。并把square-tree传递给map ,执行提示错误,不知道脑子怎么突然跑去想返回值不对,然后又给map外层加了一个cons。map应该与square-tree两者相互使用,即square-tree 中使用map 遍历树,当发现不是list时,直接平方,当是list时 再次调用map即可。导致写了很多额外的代码,代码写出来,看上去居然和第一版没区别。

2024-08-04 15:44:07 60

原创 记录一个decimalFormat使用的问题

在工作中遇到页面显示的数据格式错误,两个条数据,一条显示正常,一条小数部分没了。用的相同的标签和pattern,去查查怎么回事,原来是理解错了pattern含义。错误pattern = “###,###.##”#是数位符,有数显示,没有数不显示,0自然不显示。正确pattern = “#,###.00”0也是数位,表示有数显示数,没数显示0。简单记录一下,省的下次遗忘。

2024-08-02 15:46:50 204

原创 练习2.27

增加了deep-rever的递归,并且要将递归的结果组织成list再次呈现出来。

2024-07-28 12:18:05 49

原创 习题2.24

说起来也简单,这是一个多层的列表,第一个元素是1 第二个元素是(2 ( 3 4))盒模型其实也很简单,只是没有好工具来画,临时手绘一下。树结构,看完盒模型就懂了。第二层第一个是2 第二个是 (3 4)没啥好说, 先看解释器给出的结果。第三层第一个是 3 第二个是4。

2024-07-27 22:41:14 73

原创 习题2.25~2.26

最外面的first 是从(7)中取出7,紧接着的rest 则是从(5 7)中取出(7),下一个frist则是在((5 7 )9) 中取出(5 7),接连两个rest,是 跳过 1 3 元素。所以我们想到的取数方式,和我们写出的代码,顺序是相反的。第二个,看看代码,是不是跟直觉的顺序不太一样,仔细观察,是不是方向恰好相反?第一个挺简单,也发现不了自己思维上的问题。没啥需要解释的,直接贴代码和执行结果。

2024-07-27 14:58:58 53

原创 习题2.23

不解释了,这么简单的题目。

2024-07-26 17:43:11 67

原创 习题2.22

第二次执行的时候,此时things内容为(3 4 5 6 7),而answer的内容已经变为(4),依此推理,在things内容为空的时候,answer里面的内容已经是(49 36 25 16 9 4),与正确的代码执行过程相比,仅仅是answer的入栈顺序不同导致的,实质上是先合并结果与先迭代后合并结果的区别。先不解释,直接贴出正确的代码,然后再进行执行过程分析,看看正确代码和他两次修改的代码 各自执行过程是什么样的。其实就是将nil作为cons的第一个参数链接到list导致的。

2024-07-26 17:15:02 296

原创 习题2.20

多说一点,这里为啥要定义一个内部函数,主要是因为不定参p 拿到的是个list ,递归的时候,会变成list list嵌套,生成(2 3 4 5 6)((3 4 5 6))这种结构进行参数传递,不方便代码的编写。第一次看见空指针异常,直接傻眼,看着执行出来的步骤,也没有什么奇怪的地方。惨痛的教训啊,本来几分钟就能搞定的问题,结果在不停的自我怀疑与否定中,改来改去,都是不细心的祸,那我们把题目正确的代码贴上来。这个题本来很简单,但是我却花了很长时间,因为盲写的第一版代码,一直报奇怪的错误。

2024-07-26 16:37:38 326

原创 习题2.21

很久没有写习题的代码了,倒不是懒得做习题了,是私事多,状态差,做了很多题,也不想发出来。这段代码非常有助于理解什么是深度优先,什么是广度优先。今天回复的还好,发一个。

2024-07-21 21:29:51 201

原创 习题2.17

获取列表最后一个元素,递归的办法如上。很简单的一个提 代码如下。

2023-10-15 11:19:30 168

原创 习题1. 31

跟习题1.30比较起来,就是两个地方不同 乘法不能乘0 必须是1。两个合并的话 应该也是可以。过程自然是迭代的方式。

2023-10-14 15:14:40 156

原创 习题2.18

题目很简单 将列表反序。用clojure来写,还是有点不习惯。忽然想起来,以前面试遇到过面试题,要求用递归函数对数组反序。原来就是想考察这些内容。因为源语言已经有提供reverse,我就偷懒改个简单的名rever ,上代码。确实挺挑战固有思维的。用了十多年的c系语言。

2023-10-14 14:45:41 211

原创 习题1.27

输出结果显示,对于每一个小于561的数字,他的561次方 和他与561的模相同,也就是通过了测试。对于一个非素数,执行结果显示为no,表明没有逃过费曼检查测试。

2023-08-06 10:22:52 160

原创 js实现sql中的groupby 功能,并提供几个聚合函数

写这段代码的目的呢,有两个,第一个是实现在前端页面对数据进行groupby,第二个就是练习我对函数式编程的理解。我不是一个前端程序员,学习函数式编程模式,主要是为了提高自己平时写代码的内聚性和降低耦合,减少代码复制。代码中有使用了一处for,这个在纯函数式编程中,是不能有的。另外,这个版本还有一个问题,就是avg求出来的值是不对的,暂时没有想好avg应该如何实现。

2023-07-24 18:13:53 521

原创 习题 1.26

根据以前学过的内容,我们知道 在做显示乘法的时候,是直接进行计算的,而在做函数调用的时候,是先进行表达式展开的,直接计算,就相当于2n个变量相乘,而展开后,相当于两个相乘的变量再n次方。这样会明显减少计算量,引发性能异常。问提与语言的执行模式相关,直接相乘,每个项的值,都会重新进行一次展开归并计算。我们先来看看题目要求,题目住说将 square 调用换成了(* x x),结果导致执行时间变慢。

2023-07-15 17:06:26 182

原创 习题1.25

结果不一致,具体原因,是因为这种方式是随机搜索素数的方法,会出现如此情况,这执行结果有点奇怪,需要再次检查代码逻辑及输出.实践出真知,运行看看。然后我们与原版的代码执行结果。

2023-07-15 16:53:26 161

原创 关于spring框架使用bean注解初始化的一点认识

框架在使用bean注解的方法得到对象后,会调用实现了InitializingBean接口的对象的afterPropertiesSet方法,如果方法内再调用,会有可能出现一些奇怪的行为。这个类的afterPropertiesSet方法,连续多次执行,会产生不一样的后果,不具有幂等性。在方法中new以后,调用setcrontaskList方法以后,很自然的调用了afterPropertiesSet方法。没啥想法了,开始各种无端猜疑,有些猜想,自己都不认可,也拿来试试,死马当活马医嘛。

2023-05-09 14:31:13 149

原创 电脑的世界,最慢的果然还是IO

其中FileUtils为同事封装的类,打开内容后发现代码仅仅是调用了apache的io包,追踪进去,发现Apache是先用outputstream打开文件,写入内容,后用IOUtils.closeQuietly函数关闭steam。回想自己写php年代的经验,这种情况,高概率是由于每次读写文件,都重新打开文件写完然后关闭文件导致的。因为数据量有200w以上,初步怀疑的是数据库慢拖累的。总结,封装有利于代码结构,但也隐蔽了很多细节,在性能优化的时候,有必要追寻底层实现逻辑,才能更高效的找出问题,提升效率。

2023-01-30 10:07:21 132

原创 关于nodejs调用c/c++代码的一些感悟

转win10系统,双系统的macair电脑,硬盘有点少,win10总共40G,安装个vc环境,我的硬盘就快爆了。打不开设备,也就没办法推进问题。受网上谋篇不知名的博客影响,写出如上代码,buf里面,怎么都获取不到数据,但是ret的返回值,却又是true,证明我们已经成功的调用到了dll文件的方法。关于vs,不知道为什么,ffi编译的时候,需要vs2013以上(不含2013),我的老花眼,居然看成只支持2013,一番折腾。关于nodejs,因为客户使用node 10.1,所以也是装了卸,吐了吃。

2022-12-02 14:51:07 846

原创 习题1.24

果然是人间悲剧,居然栈溢出了,我也不知道是什么情况。初步判定是代码问题。但是确实无法理解到题目的意图内容。如果后续能get到,我就来修改补充下。

2022-11-05 14:48:54 123

原创 习题1.23

运行结果依然如上一题,无法看出运算速度关系,但是可以肯定的是,壁纸不是2.为什么我也不知道哦。嗯 我也把系统的next贴上来吧,权当我在凑字数。之所以用了next-item 是因为next有语言提供的功能,为了区分,改成next-item。题目如上,依照题目意图实现函数如下。

2022-11-05 13:58:59 90

国密加密解密小工具 SM2

国密加密解密小工具 SM2 加解密小工具界面版

2025-03-26

nginxWindows版,自带rtmp服务模块

nginxWindows版,自带rtmp服务模块,需要放在c盘根目录下面使用。

2016-08-07

EditPlus_3.2_en(注册机+英文版)

EditPlus 3.20英文版 +注册机

2010-09-10

分页sql生成器(有界面)

分页sql生成器(有界面)

2008-04-07

产生分页 sql的代码

产生分页 sql的代码,能按照要求生成 sql 代码 没有界面

2008-03-31

空空如也

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

TA关注的人

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