losowanie par zawodników z grupy

0

Szanowni Państwo, na początku chciałbym uciąć spekulacje i uwagi typu: ,,wyguglaj sobie itp", otóż prowadzę ze wspólnikiem bitwebramkarska.pl i jestem trenerem po AWF. Jako, że zawsze ceniłem sobie samodzielność i chęć uczenia się nowych rzeczy postanowiłem napisać w C# program do prowadzenia takiej bitwy. Wszystko, uważamy z kolegą udało się zrobić poza jedną rzeczą. Nie umiem z datagrida który ma maks 10 pozycji, wylosować par tzw każdy z każdym, były by to idy zawodników - tak by sie losowały mecze w grupie. Czy może mi ktoś napisać skróconą metodę jak to zrobić. Mój kod musi wykonać się w pętli, aby dodać wszystkie pary do bazy: jednak nie umiem poradzić sobie z podaniem tych par - wylosowaniem ich i proszę o pomoc. Jestem samoukiem bez warsztatu, który podstaw programowania uczy się tylko na swój użytek z książek. Dziękuję za wszelką pomoc, poniżej wklejam mój kod

 String cmdText2 = "INSERT INTO mecze (id_1st, id_2th, pts1, pts2, id_grupy, kategoria, id_edycja) " +
                                " VALUES (@id_1st, @id_2th, @pts1, @pts2, @id_grupy, @kategoria, @id_edycja)";

                            MySqlCommand cmd2 = new MySqlCommand(cmdText2, con);
                            cmd2.Prepare();

                            cmd.Parameters.AddWithValue("@id_1st", ""); <--- tu i poniżej chce wstawić zmienne z jakiejs metody, której nie umiem skleic
                            cmd.Parameters.AddWithValue("@id_2th", ""); <---
                            cmd.Parameters.AddWithValue("@pts1", "0");
                            cmd.Parameters.AddWithValue("@pts2", "0");
                            cmd.Parameters.AddWithValue("@id_grupy", "1");
                            cmd.Parameters.AddWithValue("@kategoria", "open");
                            cmd.Parameters.AddWithValue("@id_edycja", comboBox1.SelectedIndex.ToString() + 1);

                            cmd2.ExecuteNonQuery(); 
0

Masz problem z napisanie algorytmu dobierającego losowo w pary id, czy po prostu chcesz gotowca?

0

problem z algorytmem, chciałbym to zrozumieć

bo np jesli datagrid.RowCount = 3

to będe miał par 1,2 : 1,3 : 2,3

i teraz pierwsza para aby wskoczyła mi w te zmiene id_1st i id_2th

0

Musisz zaimplementować algorytm liczący kombinacje, tak, żeby zobrazować podsyłam przykładowy link:
http://www.mathsisfun.com/combinatorics/combinations-permutations-calculator.html

Gotowe algorytmy znajdziesz w sieci.

0

O rany taka matematyka to dla mnie czarna magia. Wiem, że pewnie dla programistów prościej sie nie da :(

0

A to czasami nie wystarczyło by zrobić po prostu coś takiego :

Lista zawodników i z listy od pierwszego elementu ( tj pierwszej osoby ) pętlą od drugiego do ostatniego ( czyli byłyby dwójki zawodników ) przyporządkować tego pierwszego, potem wywalić z listy pierwszego i znów od początku ?

2

cos takiego:

 
for(var id1=1;id1<=count;id1++)
{
for(var id2=id1+1;id2<=count;id2++)
{
if(id1!=id2)
{
//jedna z kombinacji
}
}
}
0

Drodzy Państwo dwa ostatnie posty bardzo mi pomogły, dziekuje. Jest prawie 10 a ja całą noc (o boze zgroza ze nad czyms takim mozna tyle siedziec) konczyłem programik. Temat do zamkniecia

0

Jest prawie 10 a ja całą noc (o boze zgroza ze nad czyms takim mozna tyle siedziec)

No i co z tego, przecież każdy kiedyś miał z podobnymi rzeczami problemy.
Pozdr.

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