Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

lekcja21 program ma losować bez powtórzeń z 3 wybranych liczb ale losuje liczby z innego zakresu

Ostatnio zmodyfikowano 2017-03-18 10:16
Autor Wiadomość
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.
P-159071
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_shuffle

Tam będziesz miał taki programik mieszający tablicę. Jeśli w tablicy będą takie same liczby po prostu się poprzestawiają.
C/C++
#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


C/C++
#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(); // losowanie indexu. Zakres jest rozmiarem tablicy
        std::cout << v[ index ] << " ";
        v.erase( v.begin() + index ); //usuwanie wylosowanego elementu z tablicy
    }
}
P-159075
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
P-159082
1 « 2 »
Poprzednia strona Strona 2 z 2