Java
Вероятность в JAVA
мне нужно присвоить булевой переменной рандомное значение. ПРитом нужно, чтобы в зависимости от какой-нибудь константы от 0 до 1 булевая переменная меняла вероятность "получения" значения falce. В общем типа рандом, только с контролируемой вероятностью
ну получили рандомом число от 0 до 1, а потом, если это сгенерированное значение, скажем, меньше 0.1 (или чему там равен параметр), присваиваете булевский false
Random r = new Random;
boolean randBoolean = r.nextInt(2) == 0? false : true;
boolean randBoolean = r.nextInt(2) == 0? false : true;
double const = X;
boolean bool = (Math.random()<const) ? true : false;
Значение переменной const (X) - это вероятность получения true. при единице и больше вероятность 100%, при 0 и меньше вероятность 0%. При 0.2 это 20%, при 0.5 50% и т. д.
boolean bool = (Math.random()<const) ? true : false;
Значение переменной const (X) - это вероятность получения true. при единице и больше вероятность 100%, при 0 и меньше вероятность 0%. При 0.2 это 20%, при 0.5 50% и т. д.
Вот кусок, который можно реализовать отдельным классом - методом, а потом вызывать, тогда принимает введенный true/false, возвращает true/false на выполнение (удобней)
Или вставить в сам main, но тогда не так удобно и ясно код будет выглядеть, но нет запара насчет отдельного класса - оставляю на выбор
Шанс легко сменить там, где комментарии насчет шанса - просто сменить число в if. Удачи!
Scanner s=new Scanner(System.in);
boolean f = s.nextBoolean();
int a = (int) (Math.ceil(100 * Math.random())); //случайное число от 1 до 100
if (f) //если f - правда
{
if (a <= 70) // 70% шанс на выполнение true
{
//return true, если отдельным методом ( для переменной типа boolean(надо создать отдельно) )
//Если это основная программа, то просто кусок текста на случай удачного выполения
}
else
{
//Действия false / return false
}
}
else
{
if (a <= 25) // 25% шанс на выполнение true при введенном false
{
//Действия true / return true
}
else
{
//Действия false / return false
}
}
//Если это основная программа, то продолжаем код, иначе тут ничего не нужно
}
Или вставить в сам main, но тогда не так удобно и ясно код будет выглядеть, но нет запара насчет отдельного класса - оставляю на выбор
Шанс легко сменить там, где комментарии насчет шанса - просто сменить число в if. Удачи!
Scanner s=new Scanner(System.in);
boolean f = s.nextBoolean();
int a = (int) (Math.ceil(100 * Math.random())); //случайное число от 1 до 100
if (f) //если f - правда
{
if (a <= 70) // 70% шанс на выполнение true
{
//return true, если отдельным методом ( для переменной типа boolean(надо создать отдельно) )
//Если это основная программа, то просто кусок текста на случай удачного выполения
}
else
{
//Действия false / return false
}
}
else
{
if (a <= 25) // 25% шанс на выполнение true при введенном false
{
//Действия true / return true
}
else
{
//Действия false / return false
}
}
//Если это основная программа, то продолжаем код, иначе тут ничего не нужно
}
Похожие вопросы
- Всем привет. Помогите плз. Мне нужна помощь тех кто действительно хорошо знает Java т. к мне нужно выбрать один из курсов
- Помогите доделать код на java. В форму пользователь вводит символ, который нужно заменить на #.
- Не выводит изображение в JAVA
- Java проблема с рефлексией.
- Java Developer vs Android Developer. Куда дальше?
- Пишут ли стартапы на Java?
- С какой книги начинать изучение Java?
- Помогите сделать java приложение! { СРОЧНО }
- Java и какой толк работать именно в консоле?
- Подскажите пожалуйста, как в данном коде Java сделать так, чтоб при нажатии цифры 3 программа завершала свою работу?