- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我必须编写一段代码,将 10 个骰子掷“N”次。我必须使用“*”制作结果的直方图(10 到 60),以显示应该出现的钟形曲线。如何组合所有不同的 ArrayList 以使我的代码看起来更干净?有没有更简单的方法来同时完成这一切?
我得到了正确的结果;我只需要一种更干净或更有效的方式来显示我的代码。
public class TenDice {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Enter number of trials: ");
int roll = scan.nextInt();
ArrayList<String> results10 = new ArrayList<>();
ArrayList<String> results11 = new ArrayList<>();
ArrayList<String> results12 = new ArrayList<>();
ArrayList<String> results13 = new ArrayList<>();
ArrayList<String> results14 = new ArrayList<>();
ArrayList<String> results15 = new ArrayList<>();
ArrayList<String> results16 = new ArrayList<>();
ArrayList<String> results17 = new ArrayList<>();
ArrayList<String> results18 = new ArrayList<>();
ArrayList<String> results19 = new ArrayList<>();
ArrayList<String> results20 = new ArrayList<>();
ArrayList<String> results21 = new ArrayList<>();
ArrayList<String> results22 = new ArrayList<>();
ArrayList<String> results23 = new ArrayList<>();
ArrayList<String> results24 = new ArrayList<>();
ArrayList<String> results25 = new ArrayList<>();
ArrayList<String> results26 = new ArrayList<>();
ArrayList<String> results27 = new ArrayList<>();
ArrayList<String> results28 = new ArrayList<>();
ArrayList<String> results29 = new ArrayList<>();
ArrayList<String> results30 = new ArrayList<>();
ArrayList<String> results31 = new ArrayList<>();
ArrayList<String> results32 = new ArrayList<>();
ArrayList<String> results33 = new ArrayList<>();
ArrayList<String> results34 = new ArrayList<>();
ArrayList<String> results35 = new ArrayList<>();
ArrayList<String> results36 = new ArrayList<>();
ArrayList<String> results37 = new ArrayList<>();
ArrayList<String> results38 = new ArrayList<>();
ArrayList<String> results39 = new ArrayList<>();
ArrayList<String> results40 = new ArrayList<>();
ArrayList<String> results41 = new ArrayList<>();
ArrayList<String> results42 = new ArrayList<>();
ArrayList<String> results43 = new ArrayList<>();
ArrayList<String> results44 = new ArrayList<>();
ArrayList<String> results45 = new ArrayList<>();
ArrayList<String> results46 = new ArrayList<>();
ArrayList<String> results47 = new ArrayList<>();
ArrayList<String> results48 = new ArrayList<>();
ArrayList<String> results49 = new ArrayList<>();
ArrayList<String> results50 = new ArrayList<>();
ArrayList<String> results51 = new ArrayList<>();
ArrayList<String> results52 = new ArrayList<>();
ArrayList<String> results53 = new ArrayList<>();
ArrayList<String> results54 = new ArrayList<>();
ArrayList<String> results55 = new ArrayList<>();
ArrayList<String> results56 = new ArrayList<>();
ArrayList<String> results57 = new ArrayList<>();
ArrayList<String> results58 = new ArrayList<>();
ArrayList<String> results59 = new ArrayList<>();
ArrayList<String> results60 = new ArrayList<>();
for (int i = 0; i < roll; i++) {
double dice1 = Math.random();
dice1 = (int) (dice1 * 6);
double dice2 = Math.random();
dice2 = (int) (dice2 * 6);
double dice3 = Math.random();
dice3 = (int) (dice3 * 6);
double dice4 = Math.random();
dice4 = (int) (dice4 * 6);
double dice5 = Math.random();
dice5 = (int) (dice5 * 6);
double dice6 = Math.random();
dice6 = (int) (dice6 * 6);
double dice7 = Math.random();
dice7 = (int) (dice7 * 6);
double dice8 = Math.random();
dice8 = (int) (dice8 * 6);
double dice9 = Math.random();
dice9 = (int) (dice9 * 6);
double dice10 = Math.random();
dice10 = (int) (dice10 * 6);
double total = dice1 + dice2 + dice3 + dice4 + dice5 +
dice6 + dice7 + dice8 + dice9 + dice10;
if (total == 10) {
results10.add("*");
}
if (total == 11) {
results11.add("*");
}
if (total == 12) {
results12.add("*");
}
if (total == 13) {
results13.add("*");
}
if (total == 14) {
results14.add("*");
}
if (total == 15) {
results15.add("*");
}
if (total == 16) {
results16.add("*");
}
if (total == 17) {
results17.add("*");
}
if (total == 18) {
results18.add("*");
}
if (total == 19) {
results19.add("*");
}
if (total == 20) {
results20.add("*");
}
if (total == 21) {
results21.add("*");
}
if (total == 22) {
results22.add("*");
}
if (total == 23) {
results23.add("*");
}
if (total == 24) {
results24.add("*");
}
if (total == 25) {
results25.add("*");
}
if (total == 26) {
results26.add("*");
}
if (total == 27) {
results27.add("*");
}
if (total == 28) {
results28.add("*");
}
if (total == 29) {
results29.add("*");
}
if (total == 30) {
results30.add("*");
}
if (total == 31) {
results31.add("*");
}
if (total == 32) {
results32.add("*");
}
if (total == 33) {
results33.add("*");
}
if (total == 34) {
results34.add("*");
}
if (total == 35) {
results35.add("*");
}
if (total == 36) {
results36.add("*");
}
if (total == 37) {
results37.add("*");
}
if (total == 38) {
results38.add("*");
}
if (total == 39) {
results39.add("*");
}
if (total == 40) {
results40.add("*");
}
if (total == 41) {
results41.add("*");
}
if (total == 42) {
results42.add("*");
}
if (total == 43) {
results43.add("*");
}
if (total == 44) {
results44.add("*");
}
if (total == 45) {
results45.add("*");
}
if (total == 46) {
results46.add("*");
}
if (total == 47) {
results47.add("*");
}
if (total == 48) {
results48.add("*");
}
if (total == 49) {
results49.add("*");
}
if (total == 50) {
results50.add("*");
}
if (total == 51) {
results51.add("*");
}
if (total == 52) {
results52.add("*");
}
if (total == 53) {
results53.add("*");
}
if (total == 54) {
results54.add("*");
}
if (total == 55) {
results55.add("*");
}
if (total == 56) {
results56.add("*");
}
if (total == 57) {
results57.add("*");
}
if (total == 58) {
results58.add("*");
}
if (total == 59) {
results59.add("*");
}
if (total == 60) {
results60.add("*");
}
}
System.out.println("10: " + results10 + "\n" + "11: " + results11 + "\n" + "12: " + results12 + "\n" + "13: " + results13 + "\n" +
"14: " + results14 + "\n" + "15: " + results15 + "\n" + "16: " + results16 + "\n" + "17: " + results17 + "\n" +
"18: " + results18 + "\n" + "19: " + results19 + "\n" + "20: " + results20 + "\n" + "21: " + results21 + "\n" +
"22: " + results22 + "\n" + "23: " + results23 + "\n" + "24: " + results24 + "\n" + "25: " + results25 + "\n" +
"26: " + results26 + "\n" + "27: " + results27 + "\n" + "28: " + results28 + "\n" + "29: " + results29 + "\n" +
"30: " + results30 + "\n" + "31: " + results31 + "\n" + "32: " + results32 + "\n" + "33: " + results33 + "\n" +
"34: " + results34 + "\n" + "35: " + results35 + "\n" + "36: " + results36 + "\n" + "37: " + results37 + "\n" +
"38: " + results38 + "\n" + "39: " + results39 + "\n" + "40: " + results40 + "\n" + "41: " + results41 + "\n" +
"42: " + results42 + "\n" + "43: " + results43 + "\n" + "44: " + results44 + "\n" + "45: " + results45 + "\n" +
"46: " + results46 + "\n" + "47: " + results47 + "\n" + "48: " + results48 + "\n" + "49: " + results49 + "\n" +
"50: " + results50 + "\n" + "51: " + results51 + "\n" + "52: " + results52 + "\n" + "53: " + results53 + "\n" +
"54: " + results54 + "\n" + "55: " + results55 + "\n" + "56: " + results56 + "\n" + "57: " + results57 + "\n" +
"58: " + results58 + "\n" + "59: " + results59 + "\n" + "60: " + results60);
}
}
最佳答案
是时候在 Java 8 中使用 Stream API 了。
要获得从 1 到 6 的 10 个骰子的总和,您可以这样做
Random rnd = new Random();
long sum = IntStream.range(0, 10).map(i -> rand.nextInt(6) + 1).sum();
您可以制作许多卷并获得这些卷的分配。
Map<Long, Long> rollCount =
IntStream.range(0, roll)
.map(r -> rnd.ints(10, 1, 7).sum())
.collect(Collectors.groupingBy(s -> s, Collectors.counting()));
因此,这将掷 10 个骰子,掷
次并获得每个结果的计数。
您可以使用以下方式打印分布
rollCount.entrySet().stream()
.sorted(e -> e.getKey())
.forEach(e -> System.out.println(e + ": " +
IntStream.range(0, 10).mapToObj(i -> "*").collect(Collectors.joining("")));
<小时/>
假设我们不能使用 Java 8。我们可以使用循环和更简单的代码。
List<String> countList = new ArrayList<>();
for(int i = 0; i <= 6 * 10; i++)
countList.add(""); // start with nothing.
Random rnd = new Random();
for (int r = 0; r < roll; r++) {
int sum = 0;
for (int i = 0; i < 10; i++)
sum += rnd.randInt(6) + 1;
String stars = countList.get(sum);
stars += "*";
countList.set(sum, stars);
}
关于java - 如何将多个 ArrayList 连接成一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35384910/
我正在编写一个具有以下签名的 Java 方法。 void Logger(Method method, Object[] args); 如果一个方法(例如 ABC() )调用此方法 Logger,它应该
我是 Java 新手。 我的问题是我的 Java 程序找不到我试图用作的图像文件一个 JButton。 (目前这段代码什么也没做,因为我只是得到了想要的外观第一的)。这是我的主课 代码: packag
好的,今天我在接受采访,我已经编写 Java 代码多年了。采访中说“Java 垃圾收集是一个棘手的问题,我有几个 friend 一直在努力弄清楚。你在这方面做得怎么样?”。她是想骗我吗?还是我的一生都
我的 friend 给了我一个谜语让我解开。它是这样的: There are 100 people. Each one of them, in his turn, does the following
如果我将使用 Java 5 代码的应用程序编译成字节码,生成的 .class 文件是否能够在 Java 1.4 下运行? 如果后者可以工作并且我正在尝试在我的 Java 1.4 应用程序中使用 Jav
有关于why Java doesn't support unsigned types的问题以及一些关于处理无符号类型的问题。我做了一些搜索,似乎 Scala 也不支持无符号数据类型。限制是Java和S
我只是想知道在一个 java 版本中生成的字节码是否可以在其他 java 版本上运行 最佳答案 通常,字节码无需修改即可在 较新 版本的 Java 上运行。它不会在旧版本上运行,除非您使用特殊参数 (
我有一个关于在命令提示符下执行 java 程序的基本问题。 在某些机器上我们需要指定 -cp 。 (类路径)同时执行java程序 (test为java文件名与.class文件存在于同一目录下) jav
我已经阅读 StackOverflow 有一段时间了,现在我才鼓起勇气提出问题。我今年 20 岁,目前在我的家乡(罗马尼亚克卢日-纳波卡)就读 IT 大学。足以介绍:D。 基本上,我有一家提供簿记应用
我有 public JSONObject parseXML(String xml) { JSONObject jsonObject = XML.toJSONObject(xml); r
我已经在 Java 中实现了带有动态类型的简单解释语言。不幸的是我遇到了以下问题。测试时如下代码: def main() { def ks = Map[[1, 2]].keySet()
一直提示输入 1 到 10 的数字 - 结果应将 st、rd、th 和 nd 添加到数字中。编写一个程序,提示用户输入 1 到 10 之间的任意整数,然后以序数形式显示该整数并附加后缀。 public
我有这个 DownloadFile.java 并按预期下载该文件: import java.io.*; import java.net.URL; public class DownloadFile {
我想在 GUI 上添加延迟。我放置了 2 个 for 循环,然后重新绘制了一个标签,但这 2 个 for 循环一个接一个地执行,并且标签被重新绘制到最后一个。 我能做什么? for(int i=0;
我正在对对象 Student 的列表项进行一些测试,但是我更喜欢在 java 类对象中创建硬编码列表,然后从那里提取数据,而不是连接到数据库并在结果集中选择记录。然而,自从我这样做以来已经很长时间了,
我知道对象创建分为三个部分: 声明 实例化 初始化 classA{} classB extends classA{} classA obj = new classB(1,1); 实例化 它必须使用
我有兴趣使用 GPRS 构建车辆跟踪系统。但是,我有一些问题要问以前做过此操作的人: GPRS 是最好的技术吗?人们意识到任何问题吗? 我计划使用 Java/Java EE - 有更好的技术吗? 如果
我可以通过递归方法反转数组,例如:数组={1,2,3,4,5} 数组结果={5,4,3,2,1}但我的结果是相同的数组,我不知道为什么,请帮助我。 public class Recursion { p
有这样的标准方式吗? 包括 Java源代码-测试代码- Ant 或 Maven联合单元持续集成(可能是巡航控制)ClearCase 版本控制工具部署到应用服务器 最后我希望有一个自动构建和集成环境。
我什至不知道这是否可能,我非常怀疑它是否可能,但如果可以,您能告诉我怎么做吗?我只是想知道如何从打印机打印一些文本。 有什么想法吗? 最佳答案 这里有更简单的事情。 import javax.swin
我是一名优秀的程序员,十分优秀!