当前位置: 首页 > 面试题库 >

在给定范围内生成奇数随机数

晏正豪
2023-03-14
问题内容

如何在给定范围之间生成奇数随机数。

对于例如:对于1到6之间的范围。随机编号为3或1或5

产生随机数的方法:

    Random_No = Min + (int)(Math.Random()*((Max-Min)+1))

请参阅如何在Java中生成特定范围内的随机整数?

产生奇数随机数的方法

    Random_No = Min + (int)(Math.Random()*((Max-Min)+1))
    if(Random_No%2 ==0)
    {
          if((Max%2)==0)&&Random_No==Max)
          {
              Random_No = Random_No - 1;  
          }
          else{
              Random_No = Random_No +1;
          }
    }

此函数将始终将2转换为3而不是1。我们能否使它成为一个更随机的函数,该函数有时将2转换为3,有时转换为1?


问题答案:

假设max为包容性,我建议以下几点:

if (Max % 2 == 0) --Max;
if (Min % 2 == 0) ++Min;
Random_No = Min + 2*(int)(Math.random()*((Max-Min)/2+1));

它导致所有奇数之间的偶数分布。



 类似资料:
  • 本文向大家介绍Java 生成给定范围内的随机数,包括了Java 生成给定范围内的随机数的使用技巧和注意事项,需要的朋友参考一下 为了生成给定范围内的随机数,Java代码如下- 示例 输出结果 名为Demo的类包含主要功能。在这里,将创建一个新的随机实例以及一个新的数组列表。创建随机元素并将其分配给变量。使用add函数将这些随机变量添加到列表中。这些元素显示在控制台上。

  • 本文向大家介绍C#生成给定范围内的随机整数,包括了C#生成给定范围内的随机整数的使用技巧和注意事项,需要的朋友参考一下 示例 生成一个介于minValue和之间的随机数maxValue - 1。            

  • 问题内容: 这是一个自我回答的帖子。一个常见的问题是在给定的开始日期和结束日期之间随机生成日期。 有两种情况需要考虑: 具有时间成分的随机日期,以及 没有时间的随机日期 例如,给定一些开始日期和结束日期,如何使用熊猫在此范围之间采样N个随机日期? 问题答案: 我们可以通过使用只是更名的事实来将@ akilat90的方法加快两倍(在@coldspeed的基准测试中),因此我们可以观看广播:

  • 问题内容: 我需要从给定范围生成随机的BigDecimal值。用Java怎么做? 问题答案:

  • 第一次在StackOverflow。我希望有人能帮我搜索一个算法。 我需要在给定的范围内生成N个随机数,求和到给定的和! null 可以生成N个常数和的数,解模,像这样:生成和是常数的随机数,但我不能用范围来完成。 或者通过产生N个随机值,将它们求和,然后将常数和除以随机和,然后将每个随机数乘以这个商,就像这里提出的那样。 我不能采用这些解决方案的主要问题是,我的每个随机值都有不同的范围,我需要这

  • 问题内容: 如何在JavaScript中的两个指定变量之间生成随机整数,例如,并输出以下任何内容? 问题答案: 一些示例: 这是背后的逻辑。这是三个简单的规则: 返回介于0(含)和1(不含)之间的。所以我们有一个这样的间隔: 现在,我们想要一个介于(含)和(不含)之间的数字: 我们可以使用来获取[min,max)间隔中的对应对象。但是,首先我们应该通过从第二个间隔中减去一点来解决这个问题: 这给出