首页 > 解决方案 > 按百分比计算的随机数 C++

问题描述

所以问题是随机球的范围从 0-100(100%),而 30% 可以是红色 20% 可以是蓝色,50% 可以是绿色,我做了这样的事情:如果几率小于 20,则计算红色如果几率小于 50 然后 cout blue 如果几率小于或等于 100 然后 cout green 有什么建议可以解决这个问题吗?

标签: loopsif-statementrandom

解决方案


百分比的最佳表示是浮点数,0% 是 0,100% 是

值得庆幸的是,C# 为此提供了一个很棒的自以为是的函数:Random.NextDouble()

要生成随机浮点数,只需像这样调用它:

随机种子随机数生成器=新随机();red_portion = seeded_random_number_generator.NextDouble();

最后要使用你的双倍,只需将它乘以另一个因素。

area_to_paint_red = red_portion * shape_area

参考: https ://docs.microsoft.com/en-us/dotnet/api/system.random.nextdouble?view=netframework-4.8


推荐阅读