@xaiponews

Random числа без повторений?

Android studio. Как сделать чтобы числа выводились без одновременных повторений?

package com.example.myapplication;

import androidx.appcompat.app.AppCompatActivity;

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

import java.io.Serializable;
import java.util.ArrayList;


public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button cmak = (Button)findViewById(R.id.knopka);
        final TextView ocko = (TextView)findViewById(R.id.okno);

        cmak.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                ocko.setText(String.valueOf(foo()));
            }

            private Serializable foo(){
                ArrayList<Integer> foo = new ArrayList<>();

                for (int i = 0; i< 2; i++) {
                    double random = Math.floor(Math.random() * 100) + 1;
                    if (random < 36) {
                        foo.add(1);
                    } else if (random < 61) {
                        foo.add(2);
                    } else if (random < 81) {
                        foo.add(3);
                    } else if (random < 96) {
                        foo.add(4);
                    } else if (random < 98) {
                        foo.add(5);
                    }
                }
                return foo;
            }
        });
    }
}
  • Вопрос задан
  • 824 просмотра
Решения вопроса 1
@WaterSmith
Android-разработчик. Java, Kotlin
Вопрос у вас сформулирован крайне не понятно. Я с трудом догадываюсь, что вы хотите обеспечить, чтобы ваш рандом не выдавал одинаковые числа подряд, если не правильно понял, извините.
У вас верятность выпадения единицы 35%, но в то же время вы хотите, чтобы она не выпдала дважды, т.е. при выпадении единицы, на следующей итерации шанс её выпадения должен быть 0%
В таком случае шанс других чисел нужно увеличить. И таким образом подменять шансы после каждой итерации.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы