标题: [文件操作] [求助]这投资数学题如何用P处理做? [打印本页]
作者: siwmm 时间: 2009-1-24 14:01 标题: [求助]这投资数学题如何用P处理做?
[求助]这投资数学题如何用P处理做?
题目来自我一个失败的P处理(查找特定TEMP的): 所以改了题目:
现有金钱C=800 ,今天过后有A=60的赢利,今天是Z=第一天..
每天都可以进行多种投资搭配:,"""只要有""钱""`~
投资方式有 投资㈠:每投资90,今天过后增加3点赢利即A+=3......
投资㈡:每投资500,今天过后增加25点赢利即A+=25
投资㈢:每投资1000,今天过后增加80点赢利即A+=80,
投资㈣:每投资5000,今天过后增加5000点赢利即A+=500,
例如:
第一天的800可以这样投资...投资90*(2)+500*(1)+1000*(0)+5000*(0)后剩下金钱120,赢利从60增加到91,这天结束得金钱120+91=211, 那么明天就有211的现金,明天会赢利91(如果不再投资)
①原本要求:第Z=90天时,每天怎样的投资A=?最大.或赢利A=2000时Z的MIN值.每一天是怎样投资才可以达到这个目的....
②有了这P处我就可以找回我重要的数据了(已经找到).:后来想想,编写出来的P处理就是一个很好的投资软件~..那请把P处理设计为,告诉用户现金C和现收入A得知Z天内每天的该怎样投资最好...C,A,Z待用户设
回答方式只要有如下就可以
:第一天投资90*(x)&500*(Y)&1000*(j)&5000(K)
第二天投资90*(x)&500*(Y)&1000*(j)&5000(K)
第Z-1天…………………………
在这发贴本想让人帮我改我第一次写的P处理(太菜,无人问津)~
期待大家华丽的语句了………………
感谢defanive改帖前的关心
[ 本帖最后由 siwmm 于 2009-1-29 20:05 编辑 ]
作者: defanive 时间: 2009-1-24 15:30
不清楚楼主所述,c和a有关系么?
作者: siwmm 时间: 2009-1-24 17:35
啊~~不好意思是Z和A~
这代码好慢,可以减少临时文件生成吗?
就是不用del %0
[ 本帖最后由 siwmm 于 2009-1-24 17:56 编辑 ]
作者: wxcute 时间: 2009-1-29 16:42
每天的投资当天就可以取回,第二天或之后任一天可取回再投资,或不可取回?
“今天之后” 是否指每天都有相应的赢利?即 1 天 1x,2 天 2x。
作者: siwmm 时间: 2009-1-29 17:45
第一天收入是60..现有资金800..这一天就这样结束的话..明天就有860.,第二天的收入水平还是60..
如果投资的话就是A=A+投资换率(如:800用去90就有3点投资换率)
[ 本帖最后由 siwmm 于 2009-1-29 17:49 编辑 ]
作者: defanive 时间: 2009-1-29 18:05
得到的A能不能转化成现金C使用?
这个是个数学问题。。。
作者: siwmm 时间: 2009-1-29 18:11
可以啊~~~
我不知道这对P处理来说难不难~,
对我这不太会用FOR的新手来说..只可以写很长很长很长很长很长才可以解决的代码了~
作者: terse 时间: 2009-1-29 18:49
粗略的一个算法 不知正确否- @echo off
- set/a c=860
- echo 第1天后 赢利60 有现金860
- :lp
- if %c% geq 5000 set/a a+=500,c-=5000,x+=5000
- if %c% geq 1000 set/a a+=80,c-=1000,x+=1000
- if %c% geq 500 set/a a+=25,c-=500,x+=500
- if %c% geq 90 set/a a+=3,c-=90,x+=90
- set/a z+=1,c+=a,b+=a,y+=x
- echo 第%z%天投资%x%元 赢利%a% 总投资%y%元 总赢利 %b% 现有现金%c%
- if %z% geq 90 echo 第%z%天后 总赢利 %b%&pause&exit
- set/a x=0
- goto lp
复制代码
作者: siwmm 时间: 2009-1-29 19:06
注意:
回答方式只要有如下就可以
:第一天投资90*(x)&500*(Y)&1000*(j)&5000(K)
第二天投资90*(x)&500*(Y)&1000*(j)&5000(K)
第Z-1天…………………………
看代码中~~
作者: siwmm 时间: 2009-1-29 19:09
可以证明这是最好的投资吗?~
作者: shqf 时间: 2009-1-29 19:11
题意有点不理解。这是P处理论坛,不如你先给出数学模型吧,然后再看看如何用P来编写,如果不涉及小数计算的话,应该是简单的。
作者: terse 时间: 2009-1-29 19:35
注意: 并没证明是最好的投资 要么低于某数就不投资 要么就只有天天投资够数的一次 你前面说过 并不能把360当4个90投资 代码给你 看能否改成你满意的
确切的说 如楼上一样 对你的题意还是不太理解 这里只是给个简单思路 至少没有临时文件 当然这不一定是你要的- @echo off
- set/a c=860
- echo 第1天后 赢利60 有现金860
- :lp
- if %c% geq 5000 set/a a+=500,c-=5000,x+=5000,_1=1
- if %c% geq 1000 set/a a+=80,c-=1000,x+=1000,_2=1
- if %c% geq 500 set/a a+=25,c-=500,x+=500,_3=1
- if %c% geq 90 set/a a+=3,c-=90,x+=90,_4=1
- set/a z+=1,c+=a,b+=a,y+=x
- echo 第%z%天投资90*%_4%+500*%_3%+1000*%_2%+5000*%_1%=%x%元 赢利%a% 总投资%y%元 总赢利 %b% 现有现金%c%
- if %z% geq 90 echo 第%z%天后 总赢利 %b%&pause&exit
- set/a x=0,_1=0,_2=0,_3=0,_4=0
- goto lp
复制代码
作者: siwmm 时间: 2009-1-29 20:07
题意:
每天都可以进行多种投资搭配:,"""只要有""钱""`~
例如:
第一天的800可以这样投资...投资90*(2)+500*(1)+1000*(0)+5000*(0)后剩下金钱120,赢利从60增加到91,这天结束得金钱120+91=211, 那么明天就有211的现金,明天会赢利91(如果不再投资)
作者: siwmm 时间: 2009-1-29 20:11
从terse的代码中我学了很多了~~把我的代码减了很多~
作者: terse 时间: 2009-1-29 20:37
90*(2) 从你的意思里了解到 360元可以做两个90投资 也可以做3个90投资 最多可作4个90投资 是吗?
记得你在联盟的回贴吗?
按你在联盟的回复 我理解成了 360只可 投资90 不可投资4个90
那样的话 上面代码 基本要重新考虑的
作者: siwmm 时间: 2009-1-29 20:39
恩~`那时我说要该题目了~~
作者: terse 时间: 2009-1-29 21:15
这里仅仅给出一个思路
按线性规划概念 只有剩余最低(如每天剩余0那就赢利最大了吧)
我这里最小是剩余90以下 再加赢利到下一周期继续
你再改下看吧- @echo off
- set/a c=800,a=60
- :lp
- if %c% geq 5000 set/a a+=c/5000*500,x+=c/5000*5000,_1=c/5000,c-=c/5000*5000
- if %c% geq 1000 set/a a+=c/1000*80,x+=c/1000*1000,_2=c/1000,c-=c/1000*1000
- if %c% geq 500 set/a a+=c/500*25,x+=c/500*500,_3=c/500,c-=c/500*500
- if %c% geq 90 set/a a+=c/90*3,x+=c/90*90,_4=c/90,c-=c/90*90
- set/a z+=1,c+=a,b+=a,y+=x
- echo 第%z%天投资90*%_4%+500*%_3%+1000*%_2%+5000*%_1%=%x%元 赢利%a% 总投资%y%元 总赢利 %b% 现有现金%c%
- if %z% geq 90 echo 第%z%天后 总赢利 %b%&pause&exit
- set/a x=0,_1=0,_2=0,_3=0,_4=0
- goto lp
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |