|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
A部分:房屋狩猎
你毕业于麻省理工学院,现在有了一份好工作!你搬到旧金山湾地区,决定要开始攒钱买房子。由于海湾地区的房价很高,你会意识到在你付得起房子的首付之前,你必须先存上几年的钱。在A部分中,我们将根据以下假设确定您需要多长时间来节省足够的资金来支付首期付款:
1. 把你梦想之家的成本称为总成本。
2. 首期付款部分所需的成本部分\首期付款。为简单起见,假设“首付”部分=0.25(25%)。
3. 到目前为止您已保存的金额为目前储蓄。你从目前的0美元储蓄开始。
4. 假设你明智地投资你目前的储蓄,年回报率为R(换句话说,在每个月底,你会收到一笔额外的资金( 目前的储蓄*R/12)投入你的储蓄)。假设您的投资收益率R=0.04(4%)。
5. 用户输入你的年薪。
6. 用户输入 假设你打算每月拿出一定数额的薪水用于储蓄首期付款。该变量应为十进制(即10%为0.1)。
7. 在每个月底,您的储蓄为您的投资回报加上您每月工资(年薪/12)。
写一个程序来计算你要花多少个月才能攒够首期付款的钱。您将希望主变量是浮点的,所以应该将用户输入强制转换为浮动。
您的程序应该要求用户输入以下变量:
1. 起始年薪(年薪)
2. 要保存的工资部分(保存的部分)
3. 梦想之家的成本(总成本)
提示
为了帮助您开始,下面是您编写代码时可能要遵循的阶段的大致概述:
●检索用户输入。如果需要有关获取用户输入的帮助,请查看input()。对于这个问题集,您可以假定用户将输入有效的输入(例如,当您期望输入int时,他们不会输入字符串)
●初始化一些状态变量。你应该决定你需要什么信息。注意代表年度金额和代表月度金额的值。
尝试不同的输入,看看为首付节省多少时间。请把你的
程序以下面测试用例中显示的格式打印结果。
测试用例1
> >
输入年薪:120000
输入您要保存的工资百分比,以小数形式表示:.10
输入您梦想之家的成本:1000000
月数:183
> >
测试用例2
> >
输入年薪:80000
输入您要保存的工资百分比,以小数形式表示:.15
输入您梦想之家的成本:500000
月数:105
> >
B部分:储蓄,加薪
背景
在A部分,我们不切实际地假设你的工资没有变化。但你是麻省理工学院的毕业生,很明显,随着时间的推移,你会对你的公司更有价值!所以我们将以你的解决方案为基础,每六个月加薪一次。
在ps1b.py中,将您的解决方案复制到A部分(因为我们将重用大部分机器)。修改程序以包括以下内容
1. 让用户输入半年度加薪(以小数百分比表示)
2. 在第6个月之后,把你的工资提高那个百分比。在第12个月、第18个月等之后也要这样做。
写一个程序来计算你要花多少个月来攒足够的钱来支付首期付款。和以前一样,假设您的投资收益率R=0.04(或4%),所需的首付百分比为0.25(或25%)。让用户输入以下变量:
1. 起始年薪(年薪)
2. 要保存的工资百分比(部分已保存)
3. 梦想之家的成本(总成本)
4. 半年度加薪(半年度加薪)
提示
为了帮助您开始,下面是您编写代码时可能要遵循的阶段的大致概述:
●检索用户输入。
●初始化一些状态变量。你应该决定你需要什么信息。一定要注意代表年度金额和代表月度金额的值。
●当你增加工资时要小心——这只会发生在6、12、18个月,等等。之后
尝试不同的输入,看看你能以多快或慢的速度节省足够的首付。拜托
使您的程序以下面测试用例中显示的格式打印结果。
测试用例1
> >
输入您的起始年薪:120000
输入您要保存的工资百分比,以小数形式表示:.05
输入您梦想之家的成本:500000
输入半年一次的加薪,以小数形式表示:.03
月份数:142
> >
测试用例2
> >
输入您的起始年薪:80000
输入您要保存的工资百分比,以小数形式表示:.1
输入您梦想之家的成本:800000
输入半年一次的加薪,以小数形式表示:.03
月份数:159
> >
测试用例3
> >
输入您的起始年薪:75000
输入您要保存的工资百分比,以小数形式表示:.05
输入您梦想之家的成本:1500000
输入半年一次的加薪,以小数形式表示:.05
月份数:261
> >
C部分:找到合适的储蓄金额
在B部分,你有机会探索你每月节省的工资百分比和你每年的加薪是如何影响你储蓄首付的时间的。这很好,但是
假设你想设定一个特定的目标,例如在三年内支付首期付款。为了实现这个目标,你每个月应该节省多少钱?在这个问题中,您将编写一个程序来回答这个问题。为了简化事情,假设:
1. 你的半年加薪是.07(7%)。
2. 您的投资年回报率为0.04(4%)。
3. 首期付款是房屋成本的0.25%(25%)。
4. 你为这所房子的费用是100万美元。
你现在要设法找到最好的储蓄率,以便在36个月内实现100万美元的首期付款。
在ps1c.py中,编写一个程序来计算最佳储蓄率,作为起始工资的函数。
你应该使用二分法搜索来帮助你有效地做到这一点。您应该跟踪完成平分线搜索所需的步骤数。在这个问题中,您应该能够重用为B部分编写的一些代码。
尝试为您的起始工资输入不同的值,并查看您需要保存更改以达到所需的首付百分比。还要记住,在一年半的时间里,可能不可能为一些薪水节省一笔首期付款。在这种情况下,您的函数应该通知用户,不可能在36个月内用打印语句保存首付款。请使您的程序以下面测试用例中显示的格式打印结果。
注意:有多种正确的方法来实现二分搜索/步骤数,因此您的结果可能与测试用例的结果不完全匹配。
提示
●可能存在多个储蓄率,其储蓄金额不超过100万美元房屋所需首付款的100美元。在这种情况下,您可以返回任何可能的值。
●根据您的停止条件以及如何计算对分搜索的试验值,您的步骤数可能与示例测试用例略有不同。
●计算保存的百分比是否合适以及计算最终的十进制百分比节省率时,注意整数除法。
每次对分搜索迭代时,记住将适当的变量重置为初始值。
测试用例1
> >
输入起始工资:150000最佳储蓄:
0.4411
对分搜索步骤:12
> >
测试用例2
> >
输入起始工资:300000
最佳储蓄率:0.2206
对分搜索步骤:9
> >
测试用例3
> >
输入起始工资:10000
三年内支付首期款是不可能的。
> >
|
|