Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.02.2012, 00:11   #11
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

to Blade

Цитата:
Сообщение от Blade
Не сумел. Просто показал почему предложенный способ плох
вот-вот. понятно.
а я хотел показать, что предложенный способ НЕ ПЛОХ.
просто он ЭФФЕКТИВНО решает другую задачу (заполнить массив из N элементов неповторяющимися случайными числами от 1 до N.)

т.е. автору темы, вместо того, чтобы исключать из массива все повторяющиеся элементы (кстати, насколько я понимаю, имхо, в C/C++ есть не только динамические, но и статические массивы, и исключить что-то из них - это сама по себе "хитрая" задача) был предложен способ, как изначально заполнить массив НЕПОВТОРЯЮЩИМИСЯ случайными числами.

Соглашусь, что автор темы формулировал совсем другую задачу. и, вполне возможно, он не может изменить алгоритм/код заполнения исходного массива.

Впрочем, в этом случае, можно все повторы элементов в исходном массиве банально заменить на какое-то значение, которого ПРИНЦИПИАЛЬНО не может быть в исходном массиве.

впрочем, опять таки, для этого нужно знать, какой диапазон чисел допустим. Если в массиве только положительные значения, тогда все повторы можно заменить на -1, например. Разумеется, если в исходном массиве могут присутствовать отрицательные числа, то заменять на -1 категорически нельзя.


p.s. чем дальше, тем больше мне кажется, что мы говорим об одном и том же. И, так как я ничего нового ни Вам, ни автору темы не скажу, то я, пожалуй, позволю себе прервать наше обсуждение. Надеюсь, что оно будет полезным другим форумчанам!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.02.2012, 12:02   #12
Yriy
 
Регистрация: 28.01.2012
Сообщений: 8
По умолчанию

Вы совершенно правы!!! Мне нужно заполнить масив в хаотичном порядке случайными числами от 1 до 16 при помощи функции Random! С функцией проблем нет, а вот удалить повторяющиеся числа и заполнить недостающими, пока не получается!
Yriy вне форума Ответить с цитированием
Старый 13.02.2012, 12:03   #13
Yriy
 
Регистрация: 28.01.2012
Сообщений: 8
По умолчанию

Использую C++ Builder
Yriy вне форума Ответить с цитированием
Старый 13.02.2012, 13:36   #14
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

Может пойдёт - заполнить и перемешать?

Код:
#include <iostream>
#include <vector>
#include <algorithm>
#include <ctime>
using namespace std;

#define N 16

int main()
{
    srand(unsigned(time(NULL)));
    vector <int> v;

    // заполняем массив
    for (int i = 1; i <= N; i++) {
        v.push_back(i);
    }

    // перемешиваем
    random_shuffle(v.begin(), v.end());

    // выводим массив на экран
    for (unsigned i = 0; i < v.size(); i++) {
        cout << v[i] << endl;
    }

    return 0;
}
8Observer8 вне форума Ответить с цитированием
Старый 15.02.2012, 20:02   #15
Yriy
 
Регистрация: 28.01.2012
Сообщений: 8
По умолчанию

C++ Builder
Yriy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
массив + генерация случайных чисел be-be Помощь студентам 1 22.10.2011 18:38
отсортировать массив случайных чисел и вывести на экран. PAREN_DEFO Помощь студентам 1 27.05.2011 17:17
составить массив случайных чисел Паскаль lirikoff Помощь студентам 8 08.02.2011 21:20
Массив случайных чисел, сред. ариф. vladxxl Общие вопросы C/C++ 1 27.11.2010 23:52
Двухмерный массив случайных чисел AxisNet Паскаль, Turbo Pascal, PascalABC.NET 4 16.09.2009 10:01