Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 对分搜索问题-麻省理工学院CS问题集简介_Python_Search_Bisection - Fatal编程技术网

Python 对分搜索问题-麻省理工学院CS问题集简介

Python 对分搜索问题-麻省理工学院CS问题集简介,python,search,bisection,Python,Search,Bisection,我必须找到最好的储蓄率,才能在一栋价值100万美元的房子上获得首期付款 36个月 以下是预先确定的值: 1.你每半年加薪0.07(7%) 2.您的投资年回报率为0.04(4%) 3.首期付款为房屋成本的0.25%(25%) 4.你正在攒钱买的房子的价格是100万美元 这也直接来自习题集: 因为我们正在搜索一个原则上是浮点的值,所以我们将自己的精度限制在两位小数(即,我们可能希望以7.04%或0.0704的小数保存,但我们没有 我们会担心7.041%和7.039%之间的差异。这意味着我们可以搜索

我必须找到最好的储蓄率,才能在一栋价值100万美元的房子上获得首期付款 36个月

以下是预先确定的值: 1.你每半年加薪0.07(7%) 2.您的投资年回报率为0.04(4%) 3.首期付款为房屋成本的0.25%(25%) 4.你正在攒钱买的房子的价格是100万美元

这也直接来自习题集: 因为我们正在搜索一个原则上是浮点的值,所以我们将自己的精度限制在两位小数(即,我们可能希望以7.04%或0.0704的小数保存,但我们没有 我们会担心7.041%和7.039%之间的差异。这意味着我们可以搜索 整数​ 介于0和10000之间(使用整数除法),然后将其转换为十进制百分比 (使用浮点除法)在计算​活期存款​ 36个月后。利用 在这个范围内,我们只搜索有限数量的数字,而不是 在0和1之间有无穷多个小数。此范围将有助于防止无限循环。我们 使用0到10000表示在0%到100%的范围内增加两个小数位。你的代码 应打印一个小数点(例如,0.0704代表7.04%)

测试用例2

Enter the starting salary:​ 300000
Best savings rate:​ 0.2206
Steps in bisection search:​ 9
测试用例3

Enter the starting salary:​ 10000
It is not possible to pay the down payment in three years.
对于第一个输入,这是我得到的

Enter your annual salary: 150000
Best savings rate: 5.000000000000001e-105
Steps in bisection search: 2
我一直很难理解我做错了什么,我希望有人能帮助我,指出我做错了什么。我想知道解决办法,但也有一些解释。显然,我可以查阅其他人的解决方案,但我想了解我做错了什么,因为我正在努力学习。

with while(months with while)(months with while
Enter the starting salary:​ 10000
It is not possible to pay the down payment in three years.
Enter your annual salary: 150000
Best savings rate: 5.000000000000001e-105
Steps in bisection search: 2