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

Массив случайных неповторяющихся чисел - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Построить график http://www.cyberforum.ru/cpp-beginners/thread604425.html
Для функции Y = f(X), график которой приведен в Вашем индивидуальном задании, вывести на экран значения Y для Х = 0, 0.25, 0.5, ... 19.75.
C++ Реализация многоуровневого меню Всем доброго дня! Помогите с кодом меню, проблема в том что нажимая клавишу 1 он опять же выкидывает меню и тоже самое при нажатие 0, то есть при нажатие 1 он должен вводить данные, что не делает а... http://www.cyberforum.ru/cpp-beginners/thread604423.html
C++ Заполнить матрицу случайными числами. Развернуть матрицу на 90(градусов) против часовой стрелки
Заполнить матрицу случайными числами. Развернуть матрицу на 90o против часовой стрелки
C++ Ошибки в коде
#include <stdio.h> #include <conio.h> #include <string.h> // strlen #include <dos.h> // delay #include <winsock2.h> // параметры передачи #define TONE 100 // частота сигнала (гц) #define...
C++ Вычисление недостающего первого значения с учетом динамики температуры. http://www.cyberforum.ru/cpp-beginners/thread604383.html
Задача на применение функций: Синоптик должен измерять темперетару воздуха за окном раз в час на протяжении 6 часов. В результате в его журнале должны появится 7 отчетов. Он опаздывает на час....
C++ Перевести код из c++ в delphi Умоляю помогите,очень нужно(( /**************************************************************************** * * * File : dllmain.c * * * * Purpose : Generic Win32 Dynamic Link Library (DLL). *... подробнее

Показать сообщение отдельно
AnyOne697
134 / 106 / 5
Регистрация: 22.05.2010
Сообщений: 533
15.06.2012, 19:31
Ну... Немного посидев с листом и карандашом, решил, что да. Математическая индукция здесь ни к чёрту. Как всегда
Цитата Сообщение от grizlik78 Посмотреть сообщение
"Premature optimization is the root of all evil". D. E. Knuth
Впрочем, если бы рандом был действительно рандомным, то всё было бы довольно не плохо. Если сделать что-то вроде
C++
1
2
3
for(int i = 0; i < ARRAY_SIZE/2; i++)
    if(rand()%2)
        swap(arr+i, arr+i+1);
.
Понятно, что здесь перемещаются только соседние элементы, но не знаю. Может есть какой-то гениальный математический способ более эффективного перемешивания массива основанный на чём-то похожем. Или вообще на одной очень сложной математической истины. Какие-нибудь n-мерные пространства. А для простых смертных сойдёт и
C++
1
2
3
4
5
6
7
8
template <class RandomAccessIterator, class RandomNumberGenerator>
  void random_shuffle ( RandomAccessIterator first, RandomAccessIterator last,
                        RandomNumberGenerator& rand )
{
  iterator_traits<RandomAccessIterator>::difference_type i, n;
  n = (last-first);
  for (i=n-1; i>0; --i) swap (first[i], first[rand(i+1)]);
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru