You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
129 lines
2.4 KiB
129 lines
2.4 KiB
import java.io.*;
|
|
import java.io.PrintWriter;
|
|
import java.io.IOException;
|
|
import java.io.FileWriter;
|
|
import java.util.ArrayList;
|
|
import java.util.Arrays;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Stream;
|
|
import java.util.Scanner;
|
|
import java.lang.Math;
|
|
|
|
public class Code {
|
|
|
|
|
|
|
|
public static boolean toss(double probability) {
|
|
return (boolean) (Math.random() < probability);
|
|
}
|
|
|
|
public static void fill_value(int[][] arr , double probability ) {
|
|
for(int i = 0 ; i < 3 ; ++i) {
|
|
for(int j = 0 ; j < 3 ; ++j) {
|
|
if(toss(probability)) {
|
|
arr[i][j] = 1;
|
|
}else {
|
|
arr[i][j] = 0;
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
public static void main(String[] args) {
|
|
|
|
try {
|
|
|
|
|
|
// ==========================input ==================================
|
|
ArrayList <Integer> widths = new ArrayList(Arrays.asList(3 , 4 , 6 , 2 , 8));
|
|
ArrayList <Double> pr = new ArrayList(Arrays.asList(0.2 , 0.3 , 0.6 , 0.9 , 0.1) );
|
|
double ans[][] = new double[5][5];
|
|
for (int ii = 0; ii < widths.size(); ii++) {
|
|
for (int jj = 0; jj < pr.size(); jj++) {
|
|
double totaltime = 0;
|
|
|
|
for(int k = 0 ; k < 5 ; ++k) {
|
|
|
|
|
|
|
|
|
|
int arr[][] = new int[3][3];
|
|
|
|
|
|
int height = 1;
|
|
int time = 0;
|
|
boolean ok = false;
|
|
|
|
while(height <= widths.get(ii)) {
|
|
ok = false;
|
|
fill_value(arr , pr.get(jj));
|
|
for(int i = 0 ; i< 3 ; ++i) {
|
|
for(int j = 0 ;j < 3 ; ++j) {
|
|
if(i == 0 && arr[i][j] == 0) {
|
|
++height;
|
|
time += 10;
|
|
ok = true;
|
|
break;
|
|
}
|
|
if(i == 1 && arr[i][j] == 0) {
|
|
time += 10;
|
|
ok = true;
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
if(ok)break;
|
|
}
|
|
|
|
|
|
}
|
|
totaltime += time;
|
|
|
|
|
|
|
|
}
|
|
totaltime /= 5.0;
|
|
|
|
|
|
ans[ii][jj] = totaltime;
|
|
//myWriter.write(widths.get(ii)+" "+pr.get(jj)+" "+totaltime);
|
|
System.out.println(pr.get(jj)+","+widths.get(ii)+","+totaltime);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
FileWriter myWriter = new FileWriter("output.txt");
|
|
for(int i=0;i<widths.size();i++)
|
|
{
|
|
for(int j=0;j<pr.size();j++)
|
|
{
|
|
myWriter.write(pr.get(j)+" "+widths.get(i)+" "+ans[i][j]);
|
|
}
|
|
}
|
|
myWriter.close();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
System.out.println("An error occurred.");
|
|
|
|
}
|
|
}
|
|
}
|