sampek Opublikowano 12 Listopada 2005 Zgłoś Opublikowano 12 Listopada 2005 juz myslem ze sie uda i bedzie dobrze no ale nie przewidzialem czegos. Zadanie : wypelnic tablice losowymi liczbami z zakresu ilosci wierszy (czyli jak 5 wierszy to losuje od 1-5) ale tak aby sie nie powtarzaly ani w wierszach ani w kolumnach. Wymodzilem cos takiego ... for (h=1 ; h<=poziom; h++){ // cyferki w poziomie czyli ilosc kolumn for (i=1; i<=pion ; i++) { // cyferki w pionie czyli ilosc wierszy, z tych cyferek losujemy wartosci start: pozycja[h] = (rand()%pion)+1; j=0; l=0; do { j++; l++; // sprawdzam czy sie nie powtarza w kolumnie lub w wierszu wylosowana wartosc jak sie powtarza to losuje jeszce raz if ( pozycja[h] == pozycja[i-j][h] || pozycja[h] == pozycja[h-l] ) goto start; } while ( j<=(i-1) || l<=(h-1) ); printf("pozycja[%d][%d]= %d\n", h,i, pozycja[h]); } } tylko ze przy koncowych pozycjach tabelki jak juz w kolumnie wykorzystane sa wszystkie wartosci z zakresu (czyli zostala nam juz tylko jedna mozliwa liczba do wstawienia) a pech chcial ze w poprzedniej kolumnie juz taka byla uzyta to sie wiesza bo nie jest dozwolone zeby w wierszu byly 2 takie same. Myslicie da sie to moje rozumowanie jakos zmodyfikowac zeby bylo ok czy zupelnieinaczej trudniej tzreba do tego podejsc? Zaznaczam ze nie musi to byc superszybkie super optymalne itd, byle spelnilo zalozenia, bedzie to tylko raz wykorzystane do wysnaczenia takiej tableki z ktorej wartosci potrzebne sa mi do czeghos innego.. Jakies triki/chwyty troche zaburzajace losowosc rozniez dozwolone. Z gory dzieki za wszelka pomoc. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
MeHow Opublikowano 13 Listopada 2005 Zgłoś Opublikowano 13 Listopada 2005 zacznij od tego, zeby uzywac znacznikow code, wtedy sie lepiej kod czyta. Jak tak zrobisz, to sprobuje Ci pomoc. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...