猫和老鼠问题的讨论
http://www.cnblogs.com/aowind/archive/2005/03/07/114175.html
上面是问题的地址,参考:
以下是和一个朋友的对话:
2005-03-08 10:24:14 天堂囚徒
主要是里面的随即数字有点恼火。。。。。。可以把随即数字永远扶植给一个变量然后取这个变量的值切被总天数除。从后面往前面做
2005-03-08 10:25:27 天堂囚徒
我的意识是先把随即数字全部都取完然后在给他固定好然后在计算。。。。
2005-03-08 10:26:16 轻剑傲风
晕,不能用总天数除的,因为在这个总天数里老鼠生育的周期本来就是随机数,那么生育了多少代也是个随机数呀!不是说第一次生育周期是10天,下一次也是10天,下一次可能变成7天,所以每一次都要重新取随机数的嘛
2005-03-08 10:28:33 天堂囚徒
我知道。我说的意识是。。先把老鼠的随即数字全部取好然后全部给变量。这个大循环只对老鼠的随即数进行处理。然后通过随即数来固定老鼠的生育周期。把这些随即数附识给变量下个大循环才算老鼠的其他数目什么的。。。。。。。
2005-03-08 10:28:18 轻剑傲风
那也只是取的第一代生时的随机数呀,下一次又要取的,再说不是所有老鼠都是同时生育的,有可能这两只老鼠都生了七代了,另两只都还差几天才生第五代呀!因为生育周期的范围是从7-15,最大是最小的一倍多哟
2005-03-08 10:30:21 天堂囚徒
如果不先把随即数首先取出来。要用在所有计算当中考虑到。一定是先死机要不就是循环被强行破坏掉
2005-03-08 10:31:13 天堂囚徒
是不是麻先把随即数字搞定了。其他的简直是小二科了三。
2005-03-08 10:31:03 轻剑傲风
大循环?这里面不会有统一的大循环的呀!
2005-03-08 10:31:55 天堂囚徒
我都说了用C不用C++多麻
2005-03-08 10:33:39 天堂囚徒
可以把老鼠定义为树型结构的数据。把猫也定义成完全二叉数字。 然后把他们的关系也定义成图形结构
2005-03-08 10:33:49 轻剑傲风
这两只老鼠第一次7天生了一窝,第二次10天生了一窝,而另两只第一次14天生了一窝,第二次8天生了一窝,那么他们都不是在同一个循环内的嘛,所以不会有统一的大循环出现的嘛,这些循环会因一只被老鼠吃掉而中突被破环,破环后所得的老鼠数又会加入到其它循环中,只要新生的老鼠满足生育时间
2005-03-08 10:34:39 轻剑傲风
猫和老鼠的发展效果是一样的哟,和老鼠的结构应该都差不多哈
2005-03-08 10:35:18 天堂囚徒
哦。 如果这样子考虑就只有从开始一点一点的做了。
2005-03-08 10:36:15 天堂囚徒
好象我那个是不行。我回切想哈。能不能把他们全部提出来然后用后面的关系来把他们加在一起
2005-03-08 10:38:05 轻剑傲风
是呀,所以只能把老鼠一只做为一个对像去运算,建一个老鼠的共用类,这个类的属性会有老鼠的年龄,下一次生育时间什么的,比如下一次生育时间应该是每一次生育后再重新取随机数,这个下一次生育时间在老鼠群体里的拥有总数应该保持为偶数,这样才能保证老鼠每两只生一窝
2005-03-08 10:39:37 天堂囚徒
面对对象我用的不是很好。我一直使用的面对关系的语言。。。。。。主要是C语言学的太好了一直丢不掉
2005-03-08 10:40:29 天堂囚徒
但是你这样子怎么处理老鼠和猫之间的关系?
2005-03-08 10:40:45 轻剑傲风
新生出来的一窝老鼠可以建一个这样的类群,猫也同样的处理方法,只是在每一天,每个猫吃到老鼠的机率也应该为一个属性,每一天猫群体吃掉老鼠的总数出计算出来,再从老鼠群体中随机抽出被吃的老鼠,标记为已死,在老鼠的循环中发现有已死的老鼠,这个循环就打破,循环所留下的老鼠数再加入其它的循环中去运算
2005-03-08 10:42:34 轻剑傲风
这不是处理掉了猫和老鼠的关系了嘛,同样,猫的吃老鼠的随机机率里出现两次连继为0,那么这只猫就自然被标为已死,同样,老鼠过了存活期没有被吃也会被标为已死,猫也一样!
2005-03-08 10:42:56 天堂囚徒
猫杀老鼠也是随即的。猫如果杀不死足够的老鼠猫要死。全部都定为属性?
2005-03-08 10:44:51 轻剑傲风
是的,定为属性,这只猫的存活期在它一出生时就取定一个随机值,猫吃老鼠的可能性在每天会取一个随机值。猫生育周期在上次生育完成时就取一个随机值,也就是在整个运算中随机值是不断更新的。
2005-03-08 10:45:43 天堂囚徒
然后怎么让他们过完10年? 没大循环?
2005-03-08 10:45:44 轻剑傲风
其实这些还是简单的,如果给猫和老鼠再加上雌雄属性的话,还要判断每次配对时,性别成对才行,这样就更复杂了
2005-03-08 10:47:09 天堂囚徒
而且还要判断老鼠里面老鼠如果成年后一只配偶被吃掉。然后他在改嫁。二昏后的子女。可以和1混的结合那就更复杂了三
2005-03-08 10:47:00 轻剑傲风
大循环也就只有天数记数器了,在每天几乎不可能出现老鼠统一生育,猫统一生育这样的巧合的事嘛,所以不会有统一的大循环
2005-03-08 10:47:31 天堂囚徒
老鼠可以不可以近亲结婚?
2005-03-08 10:47:35 轻剑傲风
这里面不会管什么血缘哈,老鼠和猫不实行优生优育的哈
2005-03-08 10:47:53 轻剑傲风
子和父都能配哈
2005-03-08 10:48:37 天堂囚徒
毛线哦。动物不的和自己的近亲结婚的
2005-03-08 10:48:57 轻剑傲风
还有,如果老鼠少了,猫会少生,慢生,猫多了,猫多了,老鼠会快生,多生,那么随机数的种子也会因别的种子的变化而变化的话,那就更复杂了,当然在这里不考虑哈,那就太高难度了
2005-03-08 10:51:58 天堂囚徒
你看能不能把老鼠和猫每天循环后的结果传给一些变量然后把变量传给一个新类这个类专门处理以上复杂的关系。然后把结果在传回切。然后在进行第2天的事
2005-03-08 10:52:41 轻剑傲风
这个是当然的了,一定是这样做的,然后再用递归处理