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

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.");
}
}
}