Форум программистов, компьютерный форум, киберфорум
Наши страницы

Как раздать по 5 карт - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ string, getline() чтение строк http://www.cyberforum.ru/cpp-beginners/thread619879.html
Здравствуйте, помогите пожалуйста написать часть кода. Задача состоит в том, чтобы прочитать данные из строк, отдельные поля дат отделяются ';'. Вот что надо прочитать: Vasya; Komsomola 12...
C++ Копирование данных через указатели Здравствуйте! Работаю над прототипом файловой системы, возникла проблема с функцией копирования: //копирует папку или файл указателями void copy (string path_from, string path_to, directory *... http://www.cyberforum.ru/cpp-beginners/thread619870.html
C++ Стоит ли отвыкать от std в коде
подскажите как лучше писать using namespace std; using std::vector; using std::list; using std::string; все писать с std:: в коде если сейчас привыкнуть работать с включенным
Программа для операций над битами C++
Здравствуйте, товарищи программисты! Прошу вас помочь мне с одним делом. В книге есть описание работы с битами. там есть умножение, сложение и т.д. Так вот, я не знаю как написать программу, чтобы...
C++ Факторизация методом NFS http://www.cyberforum.ru/cpp-beginners/thread619852.html
у кого есть какие нибудь исходники для факторизации методом решета числового поля? самому что то пока даже доступный алгоритм не найти...
C++ Все нечётные числа заменить нулями Задан одномерный массив размером в 15 элементов, все нечётные числа заменить нулями подробнее

Показать сообщение отдельно
DPS
32 / 32 / 3
Регистрация: 12.11.2011
Сообщений: 109
Завершенные тесты: 1
09.07.2012, 12:51
Генерируется число от 0 до 51 и на его основе выбирается уникальная карта. Если число уже было, выбирается другое число.
Конкретно в этом листинге недостаток состоит в проверке совпадения числа, если число уже было(например, берем 4), то начинается проверка, начиная от нуля. Если ноль не выпадал, то выбираем его и т.д. по нарастающей. Это самый примитивный алгоритм.

C++
1
2
3
4
5
6
7
8
   for(int i=0;i<52;i++)                       
        {   
            if(number_kart[i]==false)               
            {
                GENERIIK_SHISLO=i;                  
                number_kart[i]=true;                
 
                return GENERIIK_SHISLO;
Естественно, шанс выпасть у червей будет побольше, чем у пик, т.к. в нашей конкретной реализации проверка и присвоение начинается от нуля. Можно изменить шанс выпадения наоборот, если осуществлять проверку от 52 и вниз.Соответственно тогда шансы выпасть у пик будут больше.

Но это все поправимо, необходимо лишь изменить реализацию выбора числа в случае совпадения.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.