相关疑难解决方法(0)

生成唯一的随机数

如何在1到9之间生成9个随机数,不重复,一个接一个.它就像:假设生成的第一个随机数是4,那么下一个随机数必须在[1,9] - {4}中.我的第一种方法是将每个随机生成的数字添加到一个集合中,从而避免重复.但是在更糟糕的情况下,就像我们已经生成6并且我们必须再生成3个数字一样,这个过程有点慢.当范围从[1,9]变为[1,1000]时,这种方法听起来不正确.任何人都可以提出另一种方法.

java random algorithm

3
推荐指数
1
解决办法
1489
查看次数

无重复的随机数发生器

我正在尝试使用一段代码,其中将生成随机数并将其保存在集合中,以便下次生成另一个随机数时,我可以检查这个新数字是否已经在列表中.

此方法的要点是生成1到118范围内的数字,不允许重复数字.

Random rand = new Random();
    randomNum2 = rand.nextInt(118) + 1;
    if (!generated.contains(randomNum2))
    {
        String strTemp = "whiteElements\\"+String.valueOf(randomNum2)+".JPG";
        btnPuzzlePiece2.setIcon(new ImageIcon(strTemp));
        generated.add(randomNum2);
        btnPuzzlePiece2.repaint();
    }
    else 
        setPicForBtnGame1();
Run Code Online (Sandbox Code Playgroud)

但问题在于这段代码,因为程序继续生成数字,有可能有一个正确的随机数(在没有重复的范围内)想象在运行方法110次后...方法生成有效随机数的可能性减少到不到1%...这使程序有可能永远不会有1-118的数字列表,也浪费了太多的过程.

那怎么能正确写出来呢?ps我想到制作118个对象并将它们保存在一个集合中,然后生成一个随机对象,然后从列表中删除该对象,这样下一个元素就不会被复制.

请帮帮我...

java random

1
推荐指数
1
解决办法
208
查看次数

java中如何获取ArrayList中的下一个项目

我遵循了一个关于使用 java android studio 编写测验应用程序的 YouTube 教程,在教程中,您将问题放入数组列表中,然后从中随机得到问题,这可能会导致多次得到相同问题的问题。我该如何解决这个问题?我想过不使用随机,而是使用函数来获取列表中的下一个项目,但它对我不起作用。是的,这是我的代码

package com.example.quiz20;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;

import com.google.android.material.bottomsheet.BottomSheetDialog;

import java.util.ArrayList;
import java.util.Random;

public class MainActivity extends AppCompatActivity {
    private TextView questionTV,questionNumberTV;
    private Button option1Btn,option2Btn,option3Btn,option4Btn;
    private ArrayList<QuizModel> quizModelArrayList;
    Random random;
    int currentScore = 0 , questionAttempted = 0, currentPos;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        questionTV= findViewById(R.id.idTVQuestion);
        questionNumberTV=findViewById(R.id.idTVQuestionAttempted);
        option1Btn=findViewById(R.id.idBtnOption1);
        option2Btn=findViewById(R.id.idBtnOption2);
        option3Btn=findViewById(R.id.idBtnOption3);
        option4Btn=findViewById(R.id.idBtnOption4);
        quizModelArrayList = new ArrayList<>();
        random = new Random();
        getQuizQuestion(quizModelArrayList);
        currentPos …
Run Code Online (Sandbox Code Playgroud)

java android

1
推荐指数
1
解决办法
936
查看次数

在jscript中创建一个随机数生成器并防止重复

我们正在尝试创建一个随机数生成器,以便为虚拟装配线上的产品创建序列号.我们得到了随机数生成,但由于它们是序列号,我们不希望它创建重复项.有没有办法可以返回并检查生成的数字是否已经生成,然后告诉它生成新数字是否重复,并重复此过程直到它具有"唯一" "号码.

javascript

0
推荐指数
1
解决办法
1803
查看次数

随机生成java唯一数字

我将实现独特的随机数生成器.但是在运行时,它有时会生成与之前相同的数字.在这种情况下如何确保生成的数字不重复?

以下是我的代码

    int refno = 0;

    SecureRandom r = new SecureRandom();
    refno = r.nextInt(999999999);
Run Code Online (Sandbox Code Playgroud)

java random int

0
推荐指数
1
解决办法
423
查看次数

标签 统计

java ×4

random ×3

algorithm ×1

android ×1

int ×1

javascript ×1