Obliczanie pola metodą monte Carlo

0

Przypuśćmy, że mamy trójkąt zaczynający się w zerze o wysokości 10 i szerokości 5. Program generuje losowe punkty na szerokości kwadratu 10x5. w jaki sposób określić warunek który miałby ustalać ze punkt nalezy do trojkata?? poczatek programu:


    public static void main(String[] args) {
    Random losuj = new Random();
    Scanner s = new Scanner(System.in);
   System.out.println("podaj ilosc losowan");
   int a = s.nextInt();
   int tab[][]=new int[10][5];
   
   for(int i=0; i<10;i++){
       for(int j=0;j<5;j++){
           tab[i][j]=tab[losuj.nextInt(10)][losuj.nextInt(5)];
2

Wyznacz sobie równania prostych, które pokrywają się z bokami trójkątów:

  • y = a1*x + b1 # podstawa trójkąta
  • y = a2*x + b2
  • y = a3*x + b3

Następnie losujesz punkt (x0,y0) i sprawdzasz, czy punkt spełnia warunki (y0 > a1*x0 + b1) and (y0 < a2*x0 + b2) and (y0 < a3*x0 + b3). Jeśli tak, to punkt (x0,y0) znajduje się wewnątrz figury.

1

W tym zadaniu wystarczy jeden warunek: y <= 2*x.
A poza tym:

  • rozmiar tworzonej tablicy jest lekko bez sensu,
  • żadna tablica nie jest potrzebna. Losujesz punkt, sprawdzasz czy spełnia warunek, jeśli spełnia to zwiększasz licznik.

1 użytkowników online, w tym zalogowanych: 0, gości: 1