196040

NP vezbi Petka ili glava

Nov 29th, 2021
894
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //package naprednolabs;
  2. import java.util.Random;
  3. import java.util.Scanner;
  4.  
  5.  
  6. public class LoadedCoinTest {
  7.     public static void main(String[] args) {
  8.         Scanner scanner = new Scanner(System.in);
  9.         int probability = scanner.nextInt();
  10.         Coin c = new Coin();
  11.         int heads = 0;
  12.         int n = 1000;
  13.         for(int i = 0; i < n; i++) {
  14.             SIDE side = c.flip();
  15.             if(side == SIDE.HEAD) {
  16.                 heads++;
  17.             }
  18.         }
  19.         if(heads > 450&&heads < 550) {
  20.             System.out.println("YES");
  21.         } else {
  22.             System.out.println("NO");
  23.         }
  24.         c = new LoadedCoin(probability);
  25.         heads = 0;
  26.         for(int i = 0; i < n; i++) {
  27.             SIDE side = c.flip();
  28.             if(side == SIDE.HEAD) {
  29.                 heads++;
  30.             }
  31.         }
  32.         if(heads > probability * 10 - 50 && heads < probability * 10 + 50) {
  33.             System.out.println("YES");
  34.         } else {
  35.             System.out.println("NO");
  36.         }
  37.     }
  38. }
  39. enum SIDE {
  40.     HEAD, TAIL
  41. }
  42. class Coin {
  43.     SIDE side;
  44.     public SIDE flip() {
  45.         Random random = new Random();
  46.         boolean isHead = random.nextBoolean();
  47.         if (isHead) {
  48.             return SIDE.HEAD;
  49.         } else {
  50.             return SIDE.TAIL;
  51.         }
  52.     }
  53. }
  54.  
  55. class LoadedCoin extends Coin {
  56.     private int probability;
  57.     public LoadedCoin(int probability) {
  58.         this.probability = probability;
  59.     }
  60.     @Override
  61.     public SIDE flip() {
  62.         Random rand = new Random();
  63.         if(rand.nextInt(100) < probability)
  64.             return SIDE.HEAD;
  65.         return SIDE.TAIL;
  66.     }
  67. }
  68. /*
  69. Дадена е класа Coin која се користи за симулирање на вртење монета.
  70. Методот flip во оваа класа со помош на класата Random (која користи рамномерна
  71. распределба) враќа HEAD (глава) или TAIL (петка) со еднаква веројатност од 0.5 (50%).
  72. Да се напише класа LoadedCoin која наследува од класата Coin и го препокрива
  73. методот flip така што ќе враќа HEAD со некоја веројатност P (0 - 100%).
  74. Веројатноста P е класна променлива и се иницијализира преку конструкторот.
  75. */
  76.  
  77.  
RAW Paste Data