Board logo

标题: [文件操作] [求助]这投资数学题如何用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

粗略的一个算法 不知正确否
  1. @echo off
  2. set/a c=860
  3. echo 第1天后  赢利60 有现金860
  4. :lp
  5. if %c% geq 5000 set/a a+=500,c-=5000,x+=5000
  6. if %c% geq 1000 set/a a+=80,c-=1000,x+=1000
  7. if %c% geq 500 set/a a+=25,c-=500,x+=500
  8. if %c% geq 90 set/a a+=3,c-=90,x+=90
  9. set/a z+=1,c+=a,b+=a,y+=x
  10. echo 第%z%天投资%x%元 赢利%a% 总投资%y%元 总赢利 %b% 现有现金%c%
  11. if %z% geq 90 echo 第%z%天后  总赢利 %b%&pause&exit
  12. set/a x=0
  13. 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投资  代码给你  看能否改成你满意的
确切的说  如楼上一样 对你的题意还是不太理解 这里只是给个简单思路 至少没有临时文件  当然这不一定是你要的
  1. @echo off
  2. set/a c=860
  3. echo 第1天后  赢利60 有现金860
  4. :lp
  5. if %c% geq 5000 set/a a+=500,c-=5000,x+=5000,_1=1
  6. if %c% geq 1000 set/a a+=80,c-=1000,x+=1000,_2=1
  7. if %c% geq 500 set/a a+=25,c-=500,x+=500,_3=1
  8. if %c% geq 90 set/a a+=3,c-=90,x+=90,_4=1
  9. set/a z+=1,c+=a,b+=a,y+=x
  10. echo 第%z%天投资90*%_4%+500*%_3%+1000*%_2%+5000*%_1%=%x%元 赢利%a% 总投资%y%元 总赢利 %b% 现有现金%c%
  11. if %z% geq 90 echo 第%z%天后  总赢利 %b%&pause&exit
  12. set/a x=0,_1=0,_2=0,_3=0,_4=0
  13. 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以下  再加赢利到下一周期继续
你再改下看吧
  1. @echo off
  2. set/a c=800,a=60
  3. :lp
  4. if %c% geq 5000 set/a a+=c/5000*500,x+=c/5000*5000,_1=c/5000,c-=c/5000*5000
  5. if %c% geq 1000 set/a a+=c/1000*80,x+=c/1000*1000,_2=c/1000,c-=c/1000*1000
  6. if %c% geq 500 set/a a+=c/500*25,x+=c/500*500,_3=c/500,c-=c/500*500
  7. if %c% geq 90 set/a a+=c/90*3,x+=c/90*90,_4=c/90,c-=c/90*90
  8. set/a z+=1,c+=a,b+=a,y+=x
  9. echo 第%z%天投资90*%_4%+500*%_3%+1000*%_2%+5000*%_1%=%x%元 赢利%a% 总投资%y%元 总赢利 %b% 现有现金%c%
  10. if %z% geq 90 echo 第%z%天后  总赢利 %b%&pause&exit
  11. set/a x=0,_1=0,_2=0,_3=0,_4=0
  12. goto lp
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2