每次运行程序时,如何不重复地随机生成0、1、2、3(偶数个整数)?

像在其中一样,运行以下for循环:for(int x = 1; x
我需要使用math.random,并且无法弄清楚。我最近的是:

for( int x = 1; x < 5; x++ )
{
    double rand = (Math.random() * 4) + 1 ;
    int rand1 = (int) rand;

    if( rand1 == 0 )
    {
        System.out.println( songs[rand1].title );
    }
    if ( rand1 == 1 )
    {
        System.out.println( songs[rand1].title );
    }
    if( rand1 == 2 )
    {
        System.out.println( songs[rand1].title );
    }
    if( rand1 == 3 )
    {
        System.out.println( songs[rand1].title );
    }
}


这永远不会给我第一个数字..因为它只有1-4 ..当我超过4时,这给我一个错误。

所需的输出是四首歌曲中的每首歌曲每次随机打印一次。

最佳答案

首先,通过添加1,将随机数的范围从0-3更改为1-4。不要添加1。

但是要解决您的问题,要获得非重复的数字,您需要对数字进行洗牌。创建一个{0, 1, 2, 3}数组,并多次交换2个随机索引的值。

关于java - 每次使用Math.random()以随机顺序生成0、1、2、3(偶数个整数)(不重复)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19284581/

10-10 09:25