师兄,其实我觉得蛮笨的,算法我能想到,但是变作程序语言我就搞不定了。 光随机产生20-50之间的数我就已经头大了,我编的代码如下: import java.util.*; public class RandomWithRangeTest { public RandomWithRangeTest(){ } public static void main(String [] args){ Random rdm=new Random(); System.out.println("Range from 20 to 50"); if(rdm.nextInt()%50>20){ System.out.println(rdm.nextInt()%50); } else return; } } 运行出来,花样百出。有负数、正确的数、还有就是没答案 请师兄帮忙指正错误,万分感谢
int a = (int)(Math.random() * 31) + 20;//20-50 int b = (int)(Math.random() * 3) + 1;//1-3Math.random() 随机产生一个大于等于0小于1的double
楼主【raymond304】截止到2008-06-30 09:57:21的历史汇总数据(不包括此帖):
发帖数:0 发帖分:0
结贴数:0 结贴分:0
未结数:0 未结分:0
结贴率:-------------------结分率:-------------------
如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
如果当某方取走火柴之后,剩下的火柴数目是4的倍数的时候,这方一定可以通过合适的取火柴的方法获胜。简单说,当对手取a根时,你就取4-a根,就能够到达下一个4的倍数,从而一步一步靠近0点而获胜。
所以,如果是按照最合理的方法来玩这个游戏:
如果火柴数是4的整数倍,则先取者必败。
否则,先取者如果能保证剩下的火柴数是4的整数倍,则必胜。
根据这个原理,你可以设置计算机采用2种策略。
1、如果计算机能够在它第一次取之后留下4的整数倍的火柴,那它就按照这个方法来取,以后只要根据人的取法再取4-a根就必胜。
2、如果计算机不能在它第一次取之后留下4的整数倍的火柴,那它就在1-3根中随机选择,直到它能够满足第一条,或者直到火柴被取完为止。不知道这个说法你是否理解了。
光随机产生20-50之间的数我就已经头大了,我编的代码如下:
import java.util.*;
public class RandomWithRangeTest {
public RandomWithRangeTest(){
}
public static void main(String [] args){
Random rdm=new Random();
System.out.println("Range from 20 to 50");
if(rdm.nextInt()%50>20){
System.out.println(rdm.nextInt()%50);
}
else return;
}
}
运行出来,花样百出。有负数、正确的数、还有就是没答案
请师兄帮忙指正错误,万分感谢
int a = (int)(Math.random() * 31) + 20;//20-50
int b = (int)(Math.random() * 3) + 1;//1-3Math.random() 随机产生一个大于等于0小于1的double