python算法
文章平均质量分 64
小白入门算法的学习笔记,仅供参考,python代码实现,通俗易懂
RIKI_1
这个作者很懒,什么都没留下…
展开
-
【趣味学算法】16_递归练习
我们宿舍买了一箱薯片,第一天吃掉了其中一半后又多吃了一包(且不存在吃半包的情况),第二天照此方法吃完剩下的一半后又多吃一包,每天如此,直到第 10 天早上,发现只剩下一包薯片了。这里可以直观的看出往里套了九层,而fun(1)也算一次调用,所以总共是10次调用,如果想通过代码知道这个递归调用了几次该怎么实现呢。第二天吃掉第一天的一半就是5包,然后额外加1包,就是吃了6包,还剩4包 :4=10 -(10/2+1)第三天吃掉第二天的一半就是2包,然后额外加1包,就是吃了3包,还剩1包:1=4-(4/2+1)原创 2024-04-11 12:09:41 · 990 阅读 · 0 评论 -
【动手学深度学习】15_汉诺塔问题
首先考虑A座最下面的盘子移动到C座,如果能将上面的63个盘子从A座借助C座移到B座,再将63个盘子从B座借助A座移到C座,那任务即可完成,以此类推~直到仅有一个盘子的情形,则将一个盘子从一个座移动到另一个座,问题也就全部得到解决。由以上描述我们可以知道递归算法的一些特征,为了求解规模为 N 的问题,应先设法将该问题分解成一些规模较小的问题,从这些较小问题的解可以方便地构造出大问题的解。同时,这些规模较小的问题也可以采用同样的方法分解成规模更小的问题,并能从这些规模更小的问题的解中构造出规模较小问题的解。原创 2024-04-10 19:53:34 · 542 阅读 · 0 评论 -
【趣味学算法】14_梅森素数
那么让我们来验证验证歌德巴赫猜想对 2333 以内的正偶数都是成立的,即2333以内的不小于4的正偶数都能够分解为两个素数之和,实现思路当然也很简单啦就是将整数分解为两个正整数,再判断这两个正整数是否都为素数,输出最小的一组分解结果即可代码实现如下。哥德巴赫猜想(Goldbach’s conjecture)是数论中存在最久的未解问:用现代的数学语言,哥德巴赫猜想可以陈述为:任一大于 2 的偶数,都可表示成两个素数之和。都是梅森素数,n 为 2,3,5,7 时,结果都是梅森素数,但是当 n 为 11 时,原创 2024-04-09 15:29:10 · 986 阅读 · 0 评论 -
【趣味学算法】12_自守数
以上代码就是一一列举相应位数的可能进行判断,那么换个思路我们可以直接通过该数的位数来确定幂的次数。自守数是指一个数的平方的尾数等于该数自身的自然数,例如:5。更进阶的写法就是通过列表解析式一行代码就能实现啦。那么要求100000以内的自守数该怎么实现呢?注: 本系列仅为个人学习笔记,学习内容为。原创 2024-04-05 15:32:25 · 455 阅读 · 0 评论 -
【趣味学算法】11_黑洞数
根据上面的的操作可以得出对于任意一个数字不完全相同的整数,最后结果总会陷入黑洞圈或黑洞数里,最后结果一旦为黑洞数之后无论重复多少次重排求差结果都是一样的,因此可以通过判断连续的两次结果是否相等来作为黑洞数的依据。再用208计算一次:820-028=792, 972- 279=693,963-369=594,954-459=495,也是停止到495,所以495是三位黑洞数。黑洞数又称陷阱数,是指任何一个数字不全相同的整数,在经过有限次“重排求差”操作后,总会得到某一个或某一些数,这些数即为黑洞数。原创 2024-04-04 17:10:45 · 256 阅读 · 0 评论 -
【趣味学算法】10_摩尔投票法
否则,不存在主要元素)。接下来代码实现对抗和计数,先将主要元素初始化为第一个元素,对抗阶段就遍历获取列表中的数字,与主要元素比较,如果相等那么计数+1,如果不等就抵消掉,计数-1,当计数为0时,将下一个元素设为主要元素继续对抗抵消,遍历完后,判断最终赢家的总数量时候否符合超过半数的要求即可。在让我们提升一下难度,假设有列表[1,2,1,1,3,1,2,3,2,2,1]利用“摩尔投票法”来找出占比数量最多的两个元素(注意:这两个元素的数量都需要超过总数的三分之一)注: 本系列仅为个人学习笔记,学习内容为。原创 2024-03-18 18:01:08 · 424 阅读 · 0 评论 -
【趣味学算法】 09_回文数
我们可以将n平方后的结果x对10进行取余将每位数拆分存到一个数组里,然后将数组中的元素按下标从大到小的顺序取出乘以所在位置的权值并求和得到新数y,再将y与x进行比较即可得出是否为回文数。回文”是指正读反读都一样的句子,它是古今中外都有的一种修辞方式和文字游戏,如“我为人人,人人为我”等。还有另外一种思路是将拆分后的数字的对称位置的数字进行对比看是否都相等。注: 本系列仅为个人学习笔记,学习内容为。原创 2024-03-16 21:15:21 · 399 阅读 · 0 评论 -
【趣味学算法】08 凯撒密码
注: 本系列仅为个人学习笔记,学习内容为《算法小讲堂》(视频传送门),通俗易懂适合编程入门小白,需要具备python语言基础,本人小白,如内容有误感谢您的批评指正《罗马帝王传》中描述了古罗马恺撒大帝在公元 2 世纪使用的一种加密方法。它通过将字母按字母表中的顺序后移 3 位起到加密作用,如将字母 A 换作字母 D,将字母 B 换作字母 E,以此类推。假如有这样一道命令 RETURN TO ROME,在用恺撒的方法加密之后就成为 UHWXUQ WR URPH 这样的密文。这样即使被敌军截获,也无法原创 2024-03-15 21:06:43 · 419 阅读 · 0 评论 -
【趣味学算法】07_爱因斯坦的数学题
有一条长阶梯,若每步跨2阶,则最后剩一阶,若每步跨3阶,则最后剩2阶,若每步跨5阶,则最后剩4阶,若每步跨6阶,则最后剩5阶。若每步跨 7 阶,最后才正好一阶不剩,即 x%7=0。若每步跨 2 阶,则最后剩 1 阶,即 x%2=1。若每步跨 3 阶,则最后剩 2 阶,即 x%3=2。若每步跨 5 阶,则最后剩 4 阶,即 x%5=4。若每步跨 6 阶,则最后剩 5 阶,即 x%6=5。原创 2024-03-14 22:26:25 · 504 阅读 · 0 评论 -
【趣味学算法】06_字符串是否合法
但是,如果遇到的场景是类似 “[()]” 这种括号嵌套,也就是连续出现多个左括号,那么先出现的那个就不能急着去匹配,需要等待后面的匹配完,再轮到它。比如 “[()]”,是不是得先匹配内部的 “()”,然后再匹配外部的 “[]”比如 “[()]”,第三个元素是 ‘)’,从特殊列表的尾部提取出 ‘(’,匹配成功,放行……继续下一个 ‘]’,此时特殊列表只剩下 ‘[’,匹配成功,遂打印 “合法”遍历给定的字符串 s 时,当遇到一个左括号时,我们会期望在后续的遍历中,有一个相同类型的右括号将其闭合。原创 2024-03-14 22:06:32 · 571 阅读 · 0 评论 -
【趣味学算法】05_谁在说谎
由于“王五说张三和李四两人都在说谎”,因此,如果王五说的是真话,则张三和李四两人就都在说谎;反之,如果王五在说谎,则张三和李四两人至少一人说的是真话。现有 张三、李四和 王五 三个人,张三 说 李四 在说谎,李四说王五在说谎,而王五说张三 和 李四两人都在说谎。由于“张三说李四在说谎”,因此,如果张三说的是真话,则李四就在说谎;反之,如果张三在说谎,则李四说的就是真话。由于“李四说王五在说谎”,因此,如果李四说的是真话,则王五就在说谎;反之,如果李四在说谎,则王五说的就是真话。李四说的是真话,王五在说谎。原创 2024-03-13 18:06:41 · 1007 阅读 · 0 评论 -
【趣味学算法】04_与谁结婚(逻辑推断|条件组合)
有三对情侣要结婚,假设三位靓仔分别为 A、B、C,三位小仙女为 X、Y、Z。听到这样的回答后,小由鱼知道他们都是在开玩笑,说的都是假话,但他仍搞不清谁和谁结婚。设三个变量 x、y 和 z 分别表示与 X,Y,Z 结婚的靓仔。=y ——与 X 结婚的不会与 Y 结婚。=z ——与 X 结婚的不会与 Z 结婚。=z ——与 Y 结婚的不会与 Z 结婚。=‘C’ —— 与 X 结婚的不是 C。原创 2024-03-13 16:42:07 · 448 阅读 · 0 评论 -
【趣味学算法】03_兑换钱币
变量 y 代表 5 元的可能取值:[0,5,10,15,20,25,30,35,40,45,50]要将 50 元的软妹币兑换成 10 元、5 元和 1 元的钱币,问共有多少种不同的兑换方法?上述是利用了步长实现,也可以换一个角度直接设10元、5元、1元对应的张数为xyz。变量 x 代表 10 元的可能取值:[0,10,20,30,40,50]变量 z 代表 1 元的可能取值:[0,1,2,…注: 本系列仅为个人学习笔记,学习内容为。x 取值范围:[0,5]y取值范围:[0,10]y取值范围:[0,50]原创 2024-03-12 21:56:04 · 604 阅读 · 0 评论 -
【趣味学算法】02 借玩具(循环三要素|字符串格式化)
让我们用数学思维来解决这个问题,玩具不相同,鱼油不相同,那就是排列组合问题啦,换个说法就是从5个数中选三个进行排列,一共有几种结果。虽然很简单就可以算出来了那么让我们加大难度,要列出每一种方案呢?当然可以一一手动列出,但是既然我们学了编程当然是选择手撸代码实现啦~小由鱼到手了 5 个新玩具(5个玩具完全不同),准备借给 3 位鱼油,并且一人只能借一个玩具。注: 本系列仅为个人学习笔记,学习内容为。原创 2024-03-12 17:37:05 · 518 阅读 · 0 评论 -
【趣味学算法】01_找女神手机号
再让我们思考一下,上述思路存在一定问题,由K是4位数可知K的取值范围是1100到9988,那么a的取值范围应该是1到9,t的取值范围应该是34~99,那么上述代码可进行以下优化。按照女神的要求,其实就是找到一个前两位数相同、后两位数相同且相互间又不同的 4 位整数K。即求一个 4 位数 K,满足下面的条件( abcd 均属于[0,9],a=b,c=d,a!注: 本系列仅为个人学习笔记,学习内容为。原创 2024-03-10 23:40:42 · 308 阅读 · 0 评论 -
【趣味学算法】00_百鸡百钱
72114次计算,但当公鸡和母鸡的数量知道后小鸡的数量就是确定的,比如当公鸡和母鸡的数量分别为1和9时,那么小鸡的数量只能90,只需要判断(1,9,90)这组数据是否同时满足条件即可。全是公鸡100/5=20只,全是母鸡100/3=33只,全是小鸡100只,那么每种鸡的取值范围就出来了,然后把取值范围内的数字一一进行组合代入计算找到满足上述式子的所有组合即可。翻译一下就是:其中公鸡 5 块一只,母鸡 3 块一只,3 只小鸡算 1 块,要用 100 块钱买 100 只鸡,数量各是多少?原创 2024-03-09 23:55:53 · 1054 阅读 · 0 评论