我刚刚开始使用C++,并且正在创建一个简单的基于文本的冒险。我想弄清楚如何进行基于概率的事件。例如,当你打开盒子时,有50%的机会会有一把剑,并有50%的机会成为一把刀。我知道如何制作一个随机数字发生器,但我不知道如何将该数字与某些东西联系起来。我创建了我想要的变体,但它需要用户输入随机数。我想知道如何根据if语句来判断随机数是大于还是小于50,而不是用户输入的数字是大于还是小于50.概率和随机数
Q
概率和随机数
0
A
回答
-1
如果使用rand()
它会生成数字范围0..RAND_MAX
。因此,对于50%的可能性,你可以这样做:
#include <stdlib.h>
if (rand() < RAND_MAX/2)
{
// sword - 50% probability
}
else
{
// knife - 50% probability
}
你可以很明显这延伸到两个以上不同的情况对每个情况下,任何给定的概率,只需在范围0..RAND_MAX
定义每种情况下适当的阈值,例如
int r = rand();
if (r < RAND_MAX/4)
{
// sword - 25% probability
}
else if (r < 3 * RAND_MAX/4)
{
// knife - 50% probability
}
else
{
// axe - 25% probability
}
2
使用剩余的运算符%和rand。 兰特()%2可以给你0或1. 让0成为一把剑,1成为一把刀。
如果你还需要一个斧头,然后使用rand()%3。 它可以给你0,1或2.
2代表一个斧头,0和1像上面一样。 ifs和elses是显而易见的。
rand()%n其中n是一个大数字的概率越高,给你的数字越小。概率不均匀分布。你可以从stl或boost中检出一些随机数生成器。
相关问题
- 1. c#概率和随机数
- 2. 概率随机数?
- 3. 随机数字的概率
- 4. 高概率数的随机?
- 5. PHP随机概率
- 6. 随机概率PHP
- 7. 随机概率错误
- 8. 随机概率选择
- 9. 随机变量的概率
- 10. 以固定概率生成随机数
- 11. 以概率获得随机数
- 12. 获取随机数基于概率
- 13. Python的numpy的随机数的概率
- 14. 选择随机数的快速概率?
- 15. 以概率生成随机数
- 16. 概率随机数发生器
- 17. Java的高概率随机数
- 18. 随机数范围的不同概率
- 19. 基于概率的随机数
- 20. 随机生成的数字游戏与概率和循环
- 21. 根据概率随机选择项目
- 22. 不同概率的随机行选择
- 23. 带概率的随机图生成
- 24. 随机的值从枚举的概率
- 25. python:概率的随机样本
- 26. 随机算法概率最大化
- 27. 概率和机器学习
- 28. 根据概率分布函数生成随机数
- 29. 这个MATLAB代码如何工作? (概率和随机序列)
- 30. 随机生成的概率游戏循环和消除