lekcja21 program ma losować bez powtórzeń z 3 wybranych liczb ale losuje liczby z innego zakresu
Ostatnio zmodyfikowano 2017-03-18 10:16
czajo5 Temat założony przez niniejszego użytkownika |
» 2017-03-17 18:29:44 Wiem najpierw chciałem dorowadzić, żeby program działał a teraz dopiero będę go zabezpieczał przed wpisaniem innego znaku i wczytywaniem tych samych liczb. ale dzięki za zwrócenie mi uwagi bo to jest bardzo pomocne dla początkujacego. |
|
mateczek |
» 2017-03-17 21:16:52 chodzi o to, że przy losowaniu sprawdzasz czy wylosowane liczby się nie powtarzają. Jeśli w tablicy masz trzy takie same cyfry to wylosujesz tylko jedną. Chyba powinieneś sprawdzać czy indexy tablicy wpisane się powtarzają. możesz luknąć tutaj http://en.cppreference.com/w/cpp/algorithm/random_shuffleTam będziesz miał taki programik mieszający tablicę. Jeśli w tablicy będą takie same liczby po prostu się poprzestawiają. #include <random> #include <algorithm> #include <iostream>
int main() { std::vector < int > v = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; std::random_device rd; std::mt19937 g( rd() ); std::shuffle( v.begin(), v.end(), g ); for( int i = 0; i < 8; i++ ) { std::cout << v[ i ] << " "; } std::cout << std::endl; }
lub usuwanie wylosowanego elementu z puli #include <iostream> #include<vector> #include<ctime> int main() { srand( time( NULL ) ); std::vector < int > v = { 10, 2, 30, 4, 10, 6, 7, 8, 9, 10 }; for( int i = 0; i < 8; i++ ) { int index = rand() % v.size(); std::cout << v[ index ] << " "; v.erase( v.begin() + index ); } }
|
|
czajo5 Temat założony przez niniejszego użytkownika |
» 2017-03-18 10:16:39 z chęcią zobaczę i postaram się przyswoić tą wiedzę, tylko chcę podkreślić ,że ten kurs jest moim pierwszym kontaktem z programowaniem i dlatego wszystko co robię staram się opierać o wiedzę z wcześniejszych lekcji. Mimo wszystko postaram się nauczyć tego co mi wysłaliście ponadprogramowo |
|
1 « 2 » |