
趣学Python算法100例
文章平均质量分 75
didiplus
机会是留给有准备的人
展开
-
【趣学Python算法100例】爱因斯坦的数学题
由输出结果可知,在1~200之间满足条件的阶梯数只有1个,为119;在1~400之间满足条件的阶梯数有2个,为119和329;在1~600之间满足条件的阶梯数有3个,为119、329和539。爱因斯坦出了一道这样的数学题:有一条长阶梯,若每步跨2阶,则最后剩一阶,若每步跨3阶,则最后剩2阶,若每步跨5阶,则最后剩4阶,若每步跨6阶,则最后剩5阶。的范围内存在的满足要求的阶梯数的个数。的范围内存在多少个满足要求的阶梯数。开始检查,因为7是满足第一个条件的最小整数。个条件的i值即为所求的阶梯数。原创 2024-10-22 16:07:26 · 377 阅读 · 0 评论 -
【趣学Python算法100例】分糖果
第二个for循环用来将每个孩子手中已分好的一半的糖果给右边的孩子,由于第一个for循环中已经将每个孩子手中一半的糖果数保存在t数组中了,因此可直接利用t数组中的值修改sweet数组中的对应元素值。judge()函数的参数为整型数组,它可以判断该数组中各个元素的值是否相同,如果数组中所有元素的值都相同,则judge()函数返回值为0,否则judge()函数返回值为1。根据题意,10个小孩开始时所拥有的糖果数是不同的,但分糖的动作却是相同的,即“将老师开始给每个小孩分配的糖果数作为循环的初始条件,以“原创 2024-10-15 16:24:21 · 673 阅读 · 0 评论 -
【趣学Python算法100例】存钱
为了获取到最多的利息,应该在存入银行的钱到期后马上就取出来,然后再立刻将原来的本金加上当前所获取到的利息作为新的本金存入银行中,这样反复操作直到满20年为止。从输出结果中可知,获利最多的存款方式为连续存4次5年期的存款,则满20年所得到的本金一共为。根据式①及对存款期限的限定条件,可以使用for循环来穷举出所有可能的存款金额,从中找出最大的存款金额就是该问题的解。又由于存款的期限不同,对应的利率是不相同的,因此在20年中,不同的存取期限的组合所获得的利息也是不相同的。程序流程图如下图所示。原创 2024-10-14 09:13:30 · 528 阅读 · 0 评论 -
【趣学Python算法100例】个人所得税
编写一个计算个人所得税的程序,要求输入收入金额后,能够输出应缴的个人所得税。在vscode下运行程序,屏幕上提示“请输入个人收入金额:”,输入5678,运行结果如下图所示。起征点为2000元。原创 2024-10-12 10:52:01 · 1136 阅读 · 0 评论 -
【趣学Python算法100例】求车速
一辆以固定速度行驶的汽车,司机在上午10点看到里程表上的读数是一个对称数(即这个数从左向右读和从右向左读是完全一样的),为95859。两小时后里程表上出现了一个新的对称数,该数仍为5位数。问该车的速度是多少?运行这段代码,可以找到新的对称数及汽车的速度。原创 2024-10-10 11:26:45 · 379 阅读 · 0 评论 -
【趣学Python算法100例】出售金鱼
小明将养的一缸金鱼分5次出售:第1次卖出全部的一半加1/2条;第2次卖出余下的三分之一加1/3条;第3次卖出余下的四分之一加1/4条;第4次卖出余下的五分之一加1/5条;最后卖出余下的11条。试编程求出原来鱼缸中共有多少条金鱼。要解这个问题,我们可以设原来鱼缸中有 ( x ) 条金鱼。根据题意,我们可以逐步逆推计算每次出售后的剩余金鱼数量。在vscode下运行程序,结果如下图所示。由输出结果可知,原来鱼缸中共有59条金鱼。最终,原来鱼缸中共有 59 条金鱼。所以第四次出售前有 14 条。原创 2024-10-08 09:47:49 · 766 阅读 · 0 评论 -
【趣学Python算法100例】三色球
从问题里我们知道,随便挑8个球,里面红色的球我们叫它m个,白色的球叫做n个,那么剩下的黑色球自然就是8减去m再减去n个了。现在给的信息是,全部12个球里有3个红球、3个白球和6个黑球。所以,红色球m最多只能有3个,白色球n也一样,最多3个。黑色球呢,因为总数只有6个,所以你拿的8个球里,黑色的球不可能超过6个,换句话说,8减去m再减去n这个数得是6或者更小。一个口袋中放有12个球,已知其中3个是红的,3个是白的,6个是黑的,现从中任取8个,问共有多少种可能的颜色搭配?原创 2024-09-30 11:02:28 · 696 阅读 · 0 评论 -
【趣学Python算法100例】数制转换
给定一个M进制的数x,实现对x向任意一个非M进制的数的转换。要搞定这道题,关键在于学会不同数制之间的转换,主要是二进制、八进制、十六进制和十进制这几种。理解下面这几个概念非常重要:十六进制呢,就是用0到9还有A到F这些符号表示的,所以我们用一个专门放字符的数组来存它们。当你往里加数或者取数的时候,看起来都是一些字符,但是要换成别的进制时,这些字符就又要当作数字来用了。为了能在字符和它们代表的数字之间随便转换,我们做了设计两个自定义函数,一个叫,另一个是。我们想测验程序准不准确,通常会一次次重新跑程序,每次给原创 2024-09-27 10:47:13 · 572 阅读 · 0 评论 -
【趣学Python算法100例】折半查找
要想找到某个数字在这个列表里的位置,首先我们知道数组的第一个位置是0,而最后一个位置是数组长度N减1,这就是指针low和high最开始时的值,分别是0和N-1。想象一下,我们要解决一个大问题,分治算法就是先把这大问题切成几个小块,这些小块互不影响,并且跟原问题一模一样,通过搞定这些小块,最终大问题也就迎刃而解了。反过来,如果你要找的数更小,就把后面的high移到mid前面,也就是忽略后面一半。当前mid所指元素的值为21,与要查找的整数值相同,故查找成功,所查元素在表中的序号等于指针mid的值。原创 2024-09-26 16:52:48 · 598 阅读 · 0 评论 -
【趣学Python算法100例】冒泡排序
首先,从数组的第一个数开始,一个接一个地往后看,每看到两个相邻的数,就比比谁大谁小。如果前面的数比后面的数大,我们就把它们俩换个位置,就像把不听话的小朋友往后挪一样,这样就消除了一处混乱。一边往后走,我们一边持续做这个“大数往后靠”的动作,最终,最大的数就会被推到数组的最后边,正合适。接着,我们忽略掉刚刚找到的最大数,对剩下的数重复刚才的步骤,再把第二大的数放到倒数第二个位置。冒泡排序嘛,想象一下这样的画面,就像吹泡泡,大的泡泡会慢慢浮到上面,小的沉下去,过程挺直观的,画个图就更一目了然了,就像下图那样。原创 2024-09-25 11:48:54 · 576 阅读 · 0 评论 -
【趣学Python算法100例】打鱼还是晒网
本题采用数值计算算法,通过循环计算指定日期距离1990年1月1日的天数,过程中需要考虑闰年情况。闰年二月份有29天,而平年二月份有28天。中国有句俗语叫“三天打鱼两天晒网”。某人从1990年1月1日起便开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”。在Python中,判断一个数能否整除可以使用取余运算符“%”。若余数为1,2,3,则他是在“打鱼”,否则是在“晒网”。程序流程图如图1.11所示。下运行程序,结果如下图所示。这个函数会返回布尔值。原创 2024-09-24 14:59:30 · 591 阅读 · 0 评论 -
【趣学Python算法100例】最佳存款方案
如果某人在银行的年利率为 7.56%(按月计息月利率为 0.63%),他打算每年取出 1000 元,5 年后刚好取完,那么他最初需要存入约4039.44元。原创 2024-09-23 10:08:09 · 962 阅读 · 0 评论 -
【趣学Python算法100例】借书方案知多少
在这个问题中,先选出3本书,然后将这3本书按照不同的顺序分配给A、B、C,因此借书的不同组合和排列总共是P(5,3)=60种可能。原创 2024-09-20 09:34:00 · 370 阅读 · 0 评论 -
【趣学Python算法100例】百钱百鸡
通过遍历所有的公鸡和母鸡的数量组合,计算相应的小鸡数量并检查是否满足题目中的条件,我们得到了四组符合条件的答案。原创 2024-09-19 11:40:00 · 1085 阅读 · 0 评论 -
【趣学Python算法100例】牛顿迭代法求方程根
所赋初值与根的精确值是相差很多了,正是因为这个我们才需要不断地进行迭代,也就是程序中循环体的功能。在经过一番迭代之后所求得的值之间的差别也越来越小,直到求得的某两个值的差的绝对值在某个范围之内时便可结束迭代。,则第一次的判断结果必为假,这样我们就不能进入循环体再次执行。,从牛顿迭代法的原理可以看出,迭代的实质就是越来越接近方程根的精确值,最初给。更接近的方程根,一步一步迭代,从而找到更接近方程根的近似根。做曲线y=f(x)的切线,并求出该切线与x轴交点的横坐标。作为r的初始近似值,过点。原创 2024-09-18 11:07:06 · 415 阅读 · 0 评论 -
【趣学Python算法100例】兔子产子
这道题的繁殖模型符合斐波那契数列的递推关系。通过递推法,我们可以高效地计算每个月的兔子总对数,并快速得到30个月内兔子的数量。原创 2024-09-14 14:55:36 · 1146 阅读 · 0 评论 -
【趣学Python算法100例】抓交通肇事犯
这个问题通过解析题目中的条件并结合编程进行枚举和判断,最终找到了符合要求的车号。使用数学推理可以大大缩小解题范围,而编程的穷举搜索则确保了最终结果的正确性。原创 2024-09-13 10:40:29 · 1014 阅读 · 0 评论