- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
public class Spell {
// chance = (0, 100>
private int chance;
public void execute() {
if (chance < 100) {
/*
chance:80
random:40 ... if(true) ... succeed
chance:80
random:80 ... if (true) ... failed
chance:80
random:81 ... if (true) ... failed
chance:79
random:80 ... if (false) ... succeed
chance:66
random:<0,65> (66 numbers) ... if (false) ... succeed
random:<66,99> (34 numbers) ... if (true) ... failed
*/
if (chance <= (int) (Math.random() * 100)) {
System.err.println("failed");
return;
}
}
System.out.println("succeed");
}
//Test
public static void main(String[] args) {
Spell spell = new Spell();
spell.chance = 80;
spell.execute();
}
}
这是计算机会的正确方法吗?我需要某些事情偶然发生%次。我想知道我在这里是否犯了一些错误或者它是否有效。
假设我们的机会 = 80,我需要它在 80% 的时间里成功,在 20% 的时间里失败。代码中有相关内容,稍后我将在其中添加一个函数。
最佳答案
从数学的角度来看,你的想法是正确的。您固定一个段 [0, 100) 并获得均匀分布的随机数。生成的数字落入段 [0,80) 的概率为 80%。
考虑到问题评论中的建议,代码可能如下所示:
import java.util.Random;
public class Spell {
private int chance;
private Random rnd = new Random(System.currentTimeMillis());
public Spell(int chance) {
//TODO: Check that chance is inside [0, 100]
this.chance = chance;
}
public void execute() {
if (rnd.nextInt(100) <= chance)
System.out.println("succeed");
else
System.err.println("failed");
}
}
最后,您将看到打印有 chance
概率的“succeed”。
关于java - % Chance,这段代码高效且正确吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43173993/
这个问题已经有答案了: changing probability of getting a random number (7 个回答) generating random number with a
public class Spell { // chance = (0, 100> private int chance; public void execute() {
我需要根据用户之前完成的工作计算出的分数(“机会”数量)为用户分配工作。这是我的用户表: user chances Anna 6 Barry 4 Steve 3 Jackson 3
谁能告诉我我的代码有什么问题? 玩家将掷两个骰子。在第一次抛出如果两者之和骰子等于 7 或 11,玩家获胜。如果总和等于 2、3 或 12玩家输了。任何其他金额,游戏将继续,并且总和将成为玩家的“积分
我尝试在 Python IDLE 上执行以下代码 from __future__ import braces 我收到以下错误: SyntaxError: not a chance 上面的错误是什么意思
新手问题在这里: 给定以下 XML 摘录: abc 当我在 child3 上下文中时,我可以使用 preceding-sibling::* 获取 child2 节点。好的。 在
到底什么是第一次机会异常?它是如何以及在哪里起源于 .NET 程序的?为什么它被称为这个奇特的名字(我们谈论的是什么“机会”)? 最佳答案 这是一个调试概念。基本上,异常首先被抛出到调试器,然后到实际
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: Avoiding first chance exception messages when the exce
我一直在学习 c#,我想开始一个美式足球模拟器的实验性控制台应用程序项目。这个项目有机会是至关重要的。 Example: there's a 20% chance the kicker will su
例如,在消息中: First-chance exception at 0x757bd36f in foo.exe: Microsoft C++ exception: _ASExceptionInfo
突然我的代码开始抛出异常 VideoPlayer.exe 中 0x7731c41f 处的第一次机会异常:Microsoft C++ 异常:内存位置 0x0018f5dc 处的 GenICam::Run
我有以下示例 html 文件,其中包含 Zap Chance 字体。 @font-face {
我写了一个简单的程序,它将数据从一个模块的二维数组发送到另一个模块,但是它似乎不起作用,我也不确定为什么。这是我的代码: 服务器.h #include #include "stdafx.h" usi
我的 Windows 应用程序使用了以下用于打开文件的 C++/MFC 代码: CFileDialog fd(TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVER
我使用 windbg 调试故障转储,在 windbg 的以下输出中,您可以看到“first/second chance not available”,为什么 first/second chance 不
我在 C# 代码中需要一些关于 percent chance 的帮助。假设我有一个从 1 到 100 的 for 循环,在那个循环中我有一个“if”代码,我想执行 70% 次(随机)。我将如何实现这一
我完成了我的小应用程序,我正在努力确保我没有内存泄漏和错误。查看我的输出后,我注意到我的一个函数抛出了 First-Chance 异常,但该函数运行良好并且没有崩溃。 该函数调用 CLR C++ DL
很奇怪,我一直认为我们应该总是将 high chance 子句放在嵌套 if-els 的前面,直到今天。 简要设置: 数组 Zoo[] 包含 5 类的 10,000 个对象,基于权重,例如4,3,2,
假设有一个功能分支'my-feature'。在我开发该功能时,有人将它从“我的功能” merge 到“主控”中。因为这是一个快进 merge ,所以没有提交。我所做的一些更改还没有准备好用于 mast
我假设网卡处理 TCP 确认。但在确认之后,直到数据包到达应用层,是否有任何机会,数据包因任何原因被丢弃。 最佳答案 I assume that network card handles the tc
我是一名优秀的程序员,十分优秀!