• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

wzor z silnia w c+

Fiszki IT
Fiszki IT
0 głosów
247 wizyt
pytanie zadane 21 lipca 2019 w C i C++ przez KABAK Nowicjusz (230 p.)

czesc mam problem generalnie chodzi o to ze chce napisac taki banalny programik ktory oblicza prawdopodobienstwo  wygrania totolotka tylko ze uzytkownik sam wpisuje ile liczb jest do zaznaczenia i z jakiej puli. wzór na cos takiego to o ile sie nie myle 49!/((49-6)!6!) zakladajac ze wybierasz 6 liczb sposrod 49. tylko ze kiedy chce zeby program to ogliczyl to wyskakuje mi      expected ';' before '!' token

#include <iostream>

using namespace std;

int main()

{
    int x, y;

    cout << "witaj w tym prgramie oblicze za ciebie prawdobodobienstwo wygranej w dowolnej " << endl;
    cout << "grze typu LOTTO w ktorej wybierasz okreslona ilosc liczb z puli okreslonej ich " << endl;
    cout << "ilosci (w przypadku LOTTO wybierasz 6 liczb z 49) w dodatku kazda liczba moze " << endl;
    cout << "zostac wybrana tylko raz.";
    cout << "podaj ilosc liczb sposrod ktorych wybierasz (w przypadku LOTTO jest to 49):" ;
    cin >> x;
    cout << "Dobrze teraz podaj ilosc liczb ktore wybierasz sposrod ";
    cout << x;
    cout << " (w przypadku LOTTO jest to 6):";
    cin >> y;
    cout << "w takim wypadku ilosc kombinacji wynosi:";
    cout << x!/((x-y)!y!);





    return 0;
}

wiem ze kod jest banalny zresztą pewnie jak błąd ale mimo to prosze o pomoc.

1 odpowiedź

0 głosów
odpowiedź 21 lipca 2019 przez niezalogowany

W C++ nie ma żadnej funkcji/operatora liczącego silnię (! to logiczny operator negacji). Możesz samemu napisać taką funkcję, ale to może być problematyczne ze względu na skończony rozmiar zmiennych. Możesz od razu wyliczyć dwumian Newtona:

#include <iostream>
using namespace std;

int binom(int n, int k) 
{
	if (k > n) return 0;
	if (k * 2 > n) k = n - k;
	if (k == 0) return 1;

	int result = n;
	for (int i = 2; i <= k; ++i) 
	{
		result *= (n - i + 1);
		result /= i;
	}
	return result;
}

int main()
{
	int x, y;

	cout << "witaj w tym prgramie oblicze za ciebie prawdobodobienstwo wygranej w dowolnej " << endl;
	cout << "grze typu LOTTO w ktorej wybierasz okreslona ilosc liczb z puli okreslonej ich " << endl;
	cout << "ilosci (w przypadku LOTTO wybierasz 6 liczb z 49) w dodatku kazda liczba moze " << endl;
	cout << "zostac wybrana tylko raz.";
	cout << "podaj ilosc liczb sposrod ktorych wybierasz (w przypadku LOTTO jest to 49):";
	cin >> x;
	cout << "Dobrze teraz podaj ilosc liczb ktore wybierasz sposrod ";
	cout << x;
	cout << " (w przypadku LOTTO jest to 6):";
	cin >> y;
	cout << "w takim wypadku ilosc kombinacji wynosi:";
	cout << binom(x, y);
}
komentarz 21 lipca 2019 przez tkz Nałogowiec (39,540 p.)

Oczywiście, że jest gotowa funkcja, https://en.cppreference.com/w/cpp/numeric/math/tgamma

Podobne pytania

0 głosów
1 odpowiedź 53 wizyt
pytanie zadane 28 kwietnia w C i C++ przez ndel07 Nowicjusz (180 p.)
0 głosów
3 odpowiedzi 154 wizyt
pytanie zadane 16 stycznia 2018 w C i C++ przez Andr Zej Nowicjusz (120 p.)
+1 głos
1 odpowiedź 62 wizyt
pytanie zadane 17 stycznia w C# przez ppb434 Nowicjusz (170 p.)
Porady nie od parady
Publikując kody źródłowe korzystaj ze specjalnego bloczku koloryzującego składnię (przycisk z napisem code w edytorze). Nie zapomnij o ustawieniu odpowiedniego języka z rozwijanego menu oraz czytelnym formatowaniu kodu.Przycisk code

84,750 zapytań

133,554 odpowiedzi

295,976 komentarzy

56,009 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...