Kombinacje....

0

Jeśli znajdzie sie ktos na tyle dobr,by mi pomóc,albo choć podpowiedziec.

Chcę zrobic taki mały programik(totolotek) Ktory by robił tak:

1.Mam np. 5 liczb(...)= a,b,c,d,e
-po ich wprowadzeniu (najlepiej po kropce czy przecinku ,ale moze byc osobno)

Program robi cos takiego(wypisuje kombinacje 2 liczb - tylko nie powtarzające sie):
-czyli w tym przypadku: ab,ac,ad,ae,
bc,bd,be,
cd,ce,
de,
Jestem raczej słaby z matmy a wiem ze to sie da jakos prosto zapisac?
Bardzo prosze o podpowiedz.

0

Jeśłi chodzi Ci o ilosc kombinacji to mozesz to wyliczyc wzorem:

(n)(n-1)(n-k+1)
n-ilosc wsyzstkich liczb
k-ilosc wybieranych liczb, czyli 2 w Twoim przypadku

Jesli chodzi o zakodowanie tego wystarczy pomyslec troche, nie trzeba byc swietny z mamtmy;]

0

Jesli chodzi o to co pod spodem to sobie to tak napisałem:

#include <iostream.h>
#include <conio.h>

int main()
{
float ilosc,ilosc2,wynik;
clrscr();
cout<<"Ilosc_all=";
cin>>ilosc;
cout<<"\r\nIlosc_wyb=";
cin>>ilosc2;
wynik=ilosc*(ilosc-1)*(ilosc-ilosc2+1);
cout<<"wynik: "<<wynik;
getch();
return 0;
}

Ale to nie chodzi o to:
chodzi ze wprowadzam np. 4 rozne zmienne(lub wiecej max 19) a program robi kombinacje (parami bez powtorzen) kazdej zmiennej z kazdą ;) a to całkiem co innego i to mi własnie sprawia ogromny problem
Tak czy siak dziekuje za wzór tez mi sie przyda (o iledobrze to zapisałem)
Ale jesli ktos rozumie o co mi chodzi i chce mi pomóc to bardzo prosze.

0

#include <iostream>
using namespace std;
int main()
{
cout << "Ile liczb chcesz wpisac?\n";
int liczby[19];
int ile;
cin >> ile;
cout << "wpisuj liczby (kazda nastepna liczbe odzielaj spacja): ";
int ktora = 0;
for (int i = ile;i > 0; --i, ++ktora)
{
int temp;
cin >> temp;
liczby[ktora] = temp;
}
cout << "KOMBINACJE:\n";
for(int i = 0; i < ile; ++i)
{
for(int j = i+1; j < ile; ++j)
{
cout << liczby[i] << " i " << liczby[j] << " ; ";
}
}
cin >> ile; //to tylko tak żeby wynik nie znikł :)
return 0;
}

1

Po małej modyfikacji wszystko działa ,bardzo dziekuje za wskazanie ja ma to byc.
A nawet wiecej niz wskazanie ...aby to wszystko działało, wystarczyło zmienic zmienna "i" w drugiej połowie kodu na "a" - i ales gra.

....

//int a;
cout << "KOMBINACJE:\n";

      for(int a=0; a < ile; ++a)
    {
	for(int j = a+1; j < ile; ++j)
	{
	cout << liczby[a] << " i " << liczby[j] << " ; ";
	}
    }
//    cin >> ile; //to tylko tak żeby wynik nie znikł :)


    getch();
    return 0;

}


Miłego dnia ,wielkie dzieki.

0

Wszystko działa i bez zmiany tylko że Ty chyba pod Visual C++ piszesz a tam nie wiem czemu jak w for zadeklarujesz zmienną to staje się ona globalna i dlatego Ci pewnie nie chodziło ale pod BCB działa tak jak napisałem :]

0

No to przepraszam .
Mam zwykłego borlanda 3.1 bo nie moge znalezc innego.
U mnie pokazywało error:multiple action for "i" -czy jakos tak. nie kompilowało sie a po zadeklarowaniu w tej czesci drugiej zmiennej poszło.
Tak czy siak bardzo,bardzo dziekuje.

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