如果把frequency设置为int类型的最大值,这个程序的耗时将达到16s,但是cpu占用却不足百分之20,我该如何做才能让java程序更有效率的执行?
package com.yuan.project.tossacoin;
import java.util.Random;
import java.util.Scanner;
public class TossACion {
public static void main(String[] args) {
int number = 0;//
int number2 = 0;
System.out.print("请输入模拟执行掷硬币的次数:");
Scanner scanner = new Scanner(System.in);
Random random = new Random();
int frequency = scanner.nextInt();
long time1 = System.currentTimeMillis();
for (int i = 0; i < frequency; i++) {
if (1 == random.nextInt(2)) {
number += 1;
number2 += 1;
} else {
number2 += 1;
}
}
double percentage = ((double) number / (double) number2) * 100;
long time2 = System.currentTimeMillis();
long final_time = time2 - time1;
if(final_time < 1000){
System.out.println(final_time + "毫秒");
}else {
TossACion.time(final_time);
}
System.out.println("这次模拟掷到正面的概率为:" + percentage + "%");
}
public static void time(long milliseconds) {
long minutes = (milliseconds / 1000) / 60;
long seconds = (milliseconds / 1000) % 60;
//long millisec = ();
System.out.println(minutes + "分钟" + seconds + "秒");
}
}
package com.yuan.project.tossacoin;
import java.util.Random;
import java.util.Scanner;
public class TossACion {
public static void main(String[] args) {
int number = 0;//
int number2 = 0;
System.out.print("请输入模拟执行掷硬币的次数:");
Scanner scanner = new Scanner(System.in);
Random random = new Random();
int frequency = scanner.nextInt();
long time1 = System.currentTimeMillis();
for (int i = 0; i < frequency; i++) {
if (1 == random.nextInt(2)) {
number += 1;
number2 += 1;
} else {
number2 += 1;
}
}
double percentage = ((double) number / (double) number2) * 100;
long time2 = System.currentTimeMillis();
long final_time = time2 - time1;
if(final_time < 1000){
System.out.println(final_time + "毫秒");
}else {
TossACion.time(final_time);
}
System.out.println("这次模拟掷到正面的概率为:" + percentage + "%");
}
public static void time(long milliseconds) {
long minutes = (milliseconds / 1000) / 60;
long seconds = (milliseconds / 1000) % 60;
//long millisec = ();
System.out.println(minutes + "分钟" + seconds + "秒");
}
}
package com.yuan.project.tossacoin;
import java.util.Random;
import java.util.Scanner;
public class TossACion {
public static void main(String[] args) {
int number = 0;//
int number2 = 0;
System.out.print("请输入模拟执行掷硬币的次数:");
Scanner scanner = new Scanner(System.in);
Random random = new Random();
int frequency = scanner.nextInt();
long time1 = System.currentTimeMillis();
for (int i = 0; i < frequency; i++) {
if (1 == random.nextInt(2)) {
number += 1;
number2 += 1;
} else {
number2 += 1;
}
}
double percentage = ((double) number / (double) number2) * 100;
long time2 = System.currentTimeMillis();
long final_time = time2 - time1;
if(final_time < 1000){
System.out.println(final_time + "毫秒");
}else {
TossACion.time(final_time);
}
System.out.println("这次模拟掷到正面的概率为:" + percentage + "%");
}
public static void time(long milliseconds) {
long minutes = (milliseconds / 1000) / 60;
long seconds = (milliseconds / 1000) % 60;
//long millisec = ();
System.out.println(minutes + "分钟" + seconds + "秒");
}
}
2021.12 数据,可能有更多内容
如果把frequency设置为int类型的最大值,这个程序的耗时将达到16s,但是cpu占用却不足百分之20,我该如何做才能让java程序更有效率的执行?package com.yuan.project.tossacoin;
import java.util.Random;
import java.util.Scanner;
public class TossACion {
public static void main(String[] args) {
int number = 0;//
int number2 = 0;
System.out.print("请输入模拟执行掷硬币的次数:");
Scanner scanner = new Scanner(System.in);
Random random = new Random();
int frequency = scanner.nextInt();
long time1 = System.currentTimeMillis();
for (int i = 0; i < frequency; i++) {
if (1 == random.nextInt(2)) {
number += 1;
number2 += 1;
} else {
number2 += 1;
}
}
double percentage = ((double) number / (double) number2) * 100;
long time2 = System.currentTimeMillis();
long final_time = time2 - time1;
if(final_time < 1000){
System.out.println(final_time + "毫秒");
}else {
TossACion.time(final_time);
}
System.out.println("这次模拟掷到正面的概率为:" + percentage + "%");
}
public static void time(long milliseconds) {
long minutes = (milliseconds / 1000) / 60;
long seconds = (milliseconds / 1000) % 60;
//long millisec = ();
System.out.println(minutes + "分钟" + seconds + "秒");
}
}