Witam!
Prosiłbym jakiegoś miłego użytkownika o pomoc w napisaniu programu, a właściwie o napisanie, bo ja ostatnio jakąś tam styczność z programowaniem miałem kilka lat temu.
Plan jest mniej więcej taki:
Program ma losować szyfr 2-cyfrowy składający się z dziesięciu znaków - 0,1,...,8,9, np. 92, 33, 01.
Następnie tworzy tablice z wszystkimi możliwymi wynikami.
Teraz program losuje kombinacje 2 cyfr ze stworzonej przed chwila tablicy (np. 11, 00, 57) i sprawdza czy jest ona równa tej która została wylosowana na początku.
Jeśli TAK to program kończy działanie, wyświetla informacje o ilości losowań, które musiały być przeprowadzone aż do znalezienia poprawnej kombinacji.
Jeśli NIE to program losuje dalej.
Ważne jest aby prawdopodobieństwo wylosowania każdej cyfry było identyczne.
Pozdrawiam
[c++/pascal]Prośba o napisanie prostego prgramu
- kadiii
- Użytkownik
- Posty: 642
- Rejestracja: 20 gru 2005, o 21:04
- Płeć: Mężczyzna
- Lokalizacja: Wrocław
- Pomógł: 130 razy
[c++/pascal]Prośba o napisanie prostego prgramu
Nie wiem skąd wziąłeś ilość możliwych kombinacji wyników równą 55 - jest ich przecież 100 są to kody od 00,01,... do 98,99. Jeśli tak ma to wyglądac to oto kod.
Zakomentarzowane miejsca to: możliwość wypisania kombinacji oraz możliwość zmiany nieco zadania programu z liczenia do pierwszego trafienia na ilosc trafień w n próbach - ta ostatnia służy oczywiście do obliczenia prawdopodobieństwa, które w wersji teoretycznej wynosi oczywiście 0,01.
Kod: Zaznacz cały
#include <iostream>
#include <ctime>
#include <cstdlib>
#define ilosc_eksperymentow 10000
using namespace std;
int main()
{
srand ( time(NULL) );
int x,y,i,j,k=0,ind,l=0;
int ilosc_prob=0, ilosc_sukcesow=0;
int wyniki[100][2];
//losujemy nasz szyfr
x=rand()%10;
y=rand()%10;
cout<<"Szyfr jest równy "<<x<<y<<endl;
for(i=0;i<10;i++)
for(j=0;j<10;j++)
{
wyniki[k][0]=i;
wyniki[k][1]=j;
k++;
}
//tutaj mozna wypisac wszystkie kombinacje
/*for(i=0;i<100;i++)
cout<<wyniki[i][0]<<wyniki[i][1]<<endl;*/
//losujemy kombinacje
// while(l<ilosc_eksperymentow)
while(ilosc_sukcesow==0)
{
ind=rand()%100;
cout<<"Wylosowano "<<wyniki[ind][0]<<wyniki[ind][1]<<endl;
//sprawdzamy kombinacje
if((wyniki[ind][0]==x)&&(wyniki[ind][1]==y))
{
cout<<"TAK
";
ilosc_sukcesow++;
}
else
cout<<"NIE
";
ilosc_prob++;
l++;
}
cout<<"Podsumowanie :
";
cout<<"Ilosc prob : "<<ilosc_prob<<endl;
//cout<<"Ilosc sukcesow : "<<ilosc_sukcesow<<endl;
//cout<<"P(Zlamanie kodu)="<<ilosc_sukcesow/(double)ilosc_prob;
return 0;
}