我明天参加考试,考试时有一点关于概率。现在在许多这些任务中,一个是找到所有结果。有时候这很难做到。假设你有两个玩石头剪刀的玩家。一名球员是约翰,另一名是里斯。这两人连续打三场比赛。所有可能的结果与三轮可以表示为JTR。那将是约翰第一轮胜利,然后有一个领带,然后里斯赢得一轮。我知道有3 * 3 * 3 = 27个不同的结果。我可以在考试中使用我的电脑,并且可以使用一小段代码给出任何字母,在这种情况下,至少写出所有27个组合将非常好!我只会问,如果有一些已知的算法可以做到这一点,那么我现在就会在这一刻对自己进行攻击。任何建议将非常感谢!为数学考试做了少量的编程工作?
1
A
回答
1
请尝试以下功能:
void permute(String[] items, String[] soFar, int depth) {
if (depth == soFar.length) {
System.out.println(Arrays.toString(soFar));
return;
}
for(String item: items) {
soFar[depth] = item;
permute(items,soFar,depth+1);
}
}
这样称呼它:
permute(new String[] {"J","T","R"},new String[3],0);
第一个参数是要置换的项目组成的数组,第二个参数是一个空数组这只要你想要排列,第三个参数应该是0就可以了。
3
下面是这样一个程序的伪代码:
proc rps()
for outcome1 in {J,T,R}
for outcome2 in {J,T,R}
for outcome3 in {J,T,R}
print (outcome1, outcome2, outcome3)
在实际编程语言,可以表示该集合{J,T,R}作为数字1,2,3(例如)。
当然,这个片段只有在你知道预先轮数的情况下才会起作用。对于可变数量的回合,您可以使用递归。
相关问题
- 1. 尝试做数学方程时出错
- 2. 作为DSP编程初学者,我该怎么做?
- 3. 试图了解如何做的realloc和malloc函数工作
- 4. 做一些函数式编程结构减少可调试性?
- 5. 为prolog/haskell编程考试而努力
- 6. 需要做多次为了工作
- 7. 做手工/数学哈希
- 8. 评分学生的考试
- 9. 素数编程 - 我做错了什么?
- 10. PHP数学与变量不工作
- 11. 数学,编程和学习
- 12. 了解参考变量是如何工作的
- 13. 为什么试试catch不工作?我究竟做错了什么? (php)
- 14. 缺少参考/ exe不工作/ - PowerPacks -
- 15. 作为初学者入门:C编程
- 16. 很奇怪 - %我没有为整数工作,%d做到了?
- 17. 了解做语句作为参数
- 18. 数学与编程
- 19. 上做NSUserDefaults的数学和重新保存 - 不工作
- 20. np.power做了哪些额外的工作?
- 21. CamelCasePropertyNamesContractResolver做了多少骆驼?
- 22. 建设者应该做多少工作
- 23. 编程数学计算的最佳做法是什么?
- 24. 编程设置了为的slideToggle任意数量的项目
- 25. 怎么做了很多增量和减量操作的一个变量一个printf函数工作
- 26. SASS开始,用变量做数学
- 27. 我学习C++服务器编程,但是线程不工作
- 28. 为什么我的考试没有将平均代码工作?
- 29. 学习编程语言的工作方式
- 30. unregister_sidebar不工作,我做错了什么?
我认为提前编写程序可能会让您对所得到的问题产生偏见。在这些类型的考试中,有时最好以明确的开放态度对待所有可能性。一旦你编写了一个程序,你就有了一个解决问题的方法。 –
我提交了一个修改你的数学的编辑。在这种情况下,它应该是3!= 6,而不是3 * 3 * 3 = 27。 – jkschneider
@jkschneider:如果John不能赢得连续两场比赛,那么情况就是这样 - 但他肯定可以? –