Problema cu urne si bile

Rezolvarea problemelor de matematica prin realizarea unor programe.
Avatar utilizator
tuxman
utilizator
utilizator
Mesaje: 4
Membru din: 09 Ian 2011, 09:43

Problema cu urne si bile

Mesaj de tuxman » 07 Dec 2015, 12:24

Salutare !

Doresc sa rezolv urmatoarea problema cu ajutorul unui program Java:
Sunt date N urne goale în care se amplasează la întâmplare pe rând câte o bilă până atunci când în toate urnele va nimeri cel puţin câte o bilă. Să se calculeze probabilitatea că în prima urnă vor fi mai multe bile decât în a doua. Să se calculeze valoarea medie M(U), unde U - numărul urnelor în care au nimerit 2 bile.

M-am gandit ca urnele pot fi tablouri(array), iar bilele pot fi elementele tabloului.
Problema este, cum sa inserez elemente in mod aleatoriu, in diferite tablouri ?

Am incercat asa, dar nu merge:

Cod: Selectaţi tot

import java.lang.Math;
import java.util.Random;


public class UrneBile
{
      

    public static void main(String[] args) 
    {
      // N - urne goale; N = 10
  //Urna = tablou; bila = element
   int[] Urna_1;
   Urna_1 = new int[2];
    int[] Urna_2;
   Urna_2 = new int[2];
    int[] Urna_3;
   Urna_3 = new int[2];
    int[] Urna_4;
   Urna_4 = new int[2];
    int[] Urna_5;
   Urna_5 = new int[2];
    int[] Urna_6;
   Urna_6 = new int[2];
   int[] Urna_7;
   Urna_7 = new int[2];
   int[] Urna_8;
   Urna_8 = new int[2];
   int[] Urna_9;
   Urna_9 = new int[2];
   int[] Urna_10;
   Urna_10 = new int[2];
   //inserare bile in urne
    
     for &#40;int i = 1; i < 10; i++&#41;
     &#123;  
   
       int numarurna = &#40;int&#41; &#40;Math.random&#40;&#41;*10&#41;; 
       Urna_numarurna = i;
   
      System.out.println&#40;Urna_&#91;numarurna&#93;&#41;;
     &#125;

      
    &#125;
&#125;
Va rog frumos sa ma ajutati !

Va multumesc anticipat !

crs12decoder
junior
junior
Mesaje: 133
Membru din: 31 Mai 2007, 16:43

Mesaj de crs12decoder » 07 Dec 2015, 21:44

La tine problema e ca ai hardcodat indicatorul de urna si e imposibil sa ai vreo referinta numerica catre el.
Cu alte cuvinte acel 1 din Urna_1 nu are nicio valoare numerica. El e un nume de obiect. Nici sa-l parsezi nu cred ca poti.

Daca vrei sa faci cu tablouri mai simplu folosesti matrice de n*1.
Liniile sunt urnele si pe coloana corespunzatoare care este un int, pui nr de bile.
Cu alte cuvinte vei avea un singur obiect de tip int[][] pentru care vei aloca memoria new int[nr_urne][1].
Iar cand vrei sa alegi urna random, alegi intre 1 si nr de urne si acela va fi indicatorul pentru linia(urna) la care se pune o bila.
Ex urna[3][1]=7;//in urna 3 facem sa fie 7 bile.
Ex urna[5][1]=2;//in urna 5 facem sa fie 2 bile

Daca din diverse motive vrei ca fiecare urna sa fie obiect, vei avea clasa Urna care va contine un contor de bile, sa zicem ca e un int nr_bile si o metoda numita Increment() in interiorul clasei care va face ca nr_bile=nr_bile+1.

Fiecare New urna o vei baga intr-un arraylist: https://docs.oracle.com/javase/7/docs/a ... yList.html
Instantiezi array-ul de urne cu List<Urna> array_urne = new ArrayList<Urna>();
si adaugi cu ajutorul metodei add(E element), cate urne goale doresti in lista de urne. ex: array_urne.add(New Urna(0));
//de precizat ca in constructor vei primi valoarea initiala a lui nr_bile. La apelul New Urna(0) aceasta va fi setata ca fiind 0. Poti sa faci si valoare standard 0 pentru New Urna() in primul constructor din clasa Urna
Dupa ce ai adaugat urnele in array-ul de urne, vei dori sa faci modificari in fiecare urna(sa incrementezi nr de bile).
generezi un numar random sa zicem: n
Vrei sa incrementezi numarul de bile din urna de pe pozitia n a array_urne.
Ca sa faci asta te folosesti de metoda get(int index) din clasa ArrayList astfel:
array_urne.get(n).increment();//adauga in urna n inca o bila

Scrie răspuns
  • Subiecte similare
    Răspunsuri
    Vizualizări
    Ultimul mesaj