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

Рандом без повторений - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Через аргументы командной строки скопировать файл в файл http://www.cyberforum.ru/cpp-beginners/thread809544.html
Объясните, пожалуйста, как через аргументы командной строки скопировать файл в файл?
C++ Командная строка Почему при запуске скомпилированой программы, вместо русских букв у меня какая то ересь? http://www.cyberforum.ru/cpp-beginners/thread809534.html
таблица C++
кто может помочь с таблицей??? Ниже приведена таблица, строки которой соответствуют различным функциям f(n), а столбцы - значениям времени t. Определите максимальные значения n, для которых задача...
Рыбалка на С++. (Новичкам от новичка) C++
Вспоминал давно забытый С++, решил написать маленькую программку. (Распаковать в отдельную папку). Также хочу поделиться исходным кодом. Может кому то будет интересно рассмотреть, может чему...
C++ Копирование в массив структур http://www.cyberforum.ru/cpp-beginners/thread809528.html
Добрый день , программный код должен копировать вывод структуры stat в массив класса , и выводить на печать. При компиляции нет ошибок , но результат нет. Прошу указать на ошибку , целый день убил ,...
C++ Работа с графикой Народ всем привет я начал работать с графикой в C++ и возникла проблема:) Вот есть задача: Нарисуйте окно с закругленными углами. Определите класс Box, состоящий из четырех линий и четырех дуг. Я... подробнее

Показать сообщение отдельно
Shef4u
15 / 15 / 0
Регистрация: 31.10.2011
Сообщений: 116
15.03.2013, 22:32  [ТС]
Цитата Сообщение от Ev[G]eN Посмотреть сообщение
так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <algorithm>
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <cmath>
 
int main ()
{
    srand(time(0));
 
    int Np;
    std::cout << "Input Np: ";
    std::cin >> Np;
 
    int n = ceil(log(Np) / log(2));
    std::cout << "N: " << n << std::endl;
 
    int fLimit = pow(10, n - 1) - 1;
    int sLimit = pow(10, n);
    int *array = new int [Np];
    for (int i = 0; i < Np; i++) {
        int genElem = (rand() % (sLimit - fLimit + 1));
        if (!std::count(array, array + Np, genElem))
            array[i] = genElem;
        else
            i--;
    }
 
    std::cout << "Your array: " << std::endl;
    for (int i = 0; i < Np; i++)
        std::cout << array[i] << " ";
    std::cout << std::endl;
 
    delete [] array;
    return 0;
}
можете написать кусок кода который будет делать каждый раз проверку, не равен ли результат какому-либо из уже полученных и, если равен, вызывать rand()%2 ещё раз b еще раз?
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru