- 博客(62)
- 收藏
- 关注
原创 逻辑编程及格题
会了这题就可以及格了,原话如下:Ok, we’re now halfway through the book. And flattening a list is the Pons Asinorum of Prolog programming. Did you cross it ok? If so, great. Time to move on.
2024-11-28 08:28:56
1775
原创 并查集的应用
从验证来看,查找和合并的是下标,5、8、9都合到7,7的rank是1层。2、4合并后下标4的值改成了2,再与8合并后,7的rank就变成两层了。
2024-11-23 08:01:03
345
原创 毕氏完美数
毕达哥拉斯创立了一个研究天文、几何、数论及音乐的秘密教团。他们本来想要把整个世界都化为数字,但是却找不到任何一条线段能够用来同时度量正方形的对角线与边,于是这个梦想破灭了。
2024-11-22 12:41:23
821
原创 泛型编程素数
是谁想到这样的数的,有来干什么的。先生成十万以内的素数,前五个奇数组成的数在十万以内。这里是用一个数是不是素数的倍数来判断它是不是素数,跟陈景润证明里用的不一样。程序求奇数[1, 3, 5, 7, 9]组成的去掉头尾还是素数的素数。上面STL找的是两亿里的素数,把eratosthene(N)里的N改成2*N,测试结果如下。用埃拉托斯特尼筛法找201前的素数。都是两层循环,STL还可以应用更多观察到的规律,应该是更快的,至少在C++里是最好的。文章里使用一个数平方根以下的数,看是不是这个数的因子来判断素数。
2024-11-21 07:19:22
2110
原创 解背包问题
让生成的随机数每次都一样。随机种子一直有用吗?重新打开应用,电脑关了再打开,生成的随机数还是一样吗?从测试结果看,有两百次,有十次是没有超重的。第一个最大价值400就是最优解。跟随机算法一样,设置250总重量时,选择的是222重量,400价值。里面提到了穷举法,贪心算法,分支界限法,还列出了动态规划的思路。排序后只找一遍,不是比较所有解。选择的物品,从单价高的往下选。0/1背包问题的解法。我这里测试是这样的。
2024-11-20 11:13:50
838
原创 误差的处理
分数法十进制法sympy验证有效位丢失大小基本相同的数值相减,由于丢失有效数字而引起的误差。运用有效位数的二进制表示实数所产生的误差。上面图片的例子就是这种情况。绝对值相差较大的数值进行运算时,绝对值小的数未被反应到计算结果中而产生的误差。使用通约分模块,直接作为分数进行运算,避免小数表示产生的化整误差。from fractions import Fractionprint(“通约分模块”,Fraction(1,10)+Fraction(1,10)+Fraction(1,10))#通约分模块#p
2024-11-18 10:16:39
1235
原创 运算实战题
想到TX,TY也是列表,列表就应该加中括号。看调试里T跟Result是不一样的内存了。这也许才是递归应该的写法。member(X,[1|2,3,4]).试一下这种写法,直接报错了。Z,scalarMult(Z,TX,TY).开始写成了Y is X。也只能跟自己这样解释了,看前面抄的第一题求最小值人家也是这样写的。主要是用整数表示前面讲的表的长度。里还认为它是列表分头尾后后面的元组项。参照列表求最大值,实现求列表最小值。前面列表的练习里正好有这样的例子。
2024-11-16 09:08:14
1346
原创 反恐搜索——打印间隔两枚选择的硬币
1,调式的时候发现前面文章写的coins2Iterative,间隔两枚选硬币的迭代方法是错的,还有没考虑到的情况。2,前面文章写递归调用的coins2直接选择0~99枚硬币也是长时间没有运行结果。3,实际我是从后面一步一步尝试到最前面才成功。这文章应该倒着看。4,一个函数里4次调用自己,而且问题规模没有太大的缩小,复杂度应该是很高的。4,穷举递归应该是第一个尝试的办法。
2024-11-06 10:08:07
208
原创 递归的改造——间隔挑硬币
无人机已扫描所有的建筑,总台给出了每栋建筑可疑人员的概率。但兵力有限最多只能连续搜索两栋,还要跳过两栋以免打草惊蛇。情况紧急,必须在天亮之前赶到下一战区。
2024-10-30 10:42:00
320
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人