Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
2 / 2 / 1
Регистрация: 03.04.2010
Сообщений: 7

Нестандартный алгоритм заполнения случайными числами

24.04.2010, 23:28. Показов 1509. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть ли какое-то решение, чтобы заполнить массив случайными числами, но сумма этих чисел в каждой строке равнялась определенному значению n?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.04.2010, 23:28
Ответы с готовыми решениями:

Вставка заполнения массива случайными числами
есть код программы и никак не получается вставить рандомное заполнение массива. Пытался вставить рандом перед циклом и массив заполняется...

Функция заполнения матрицы случайными числами
есть функция выделения динамической памяти под массив int** memory(int n, int m){ int** a = new int*; for (int i = 0; i < n;...

Создание функция заполнения массива случайными числами
Условие задачи: Написать функцию, которая заполняет массив случайными числами в диапазоне, указанном пользователем. Функция должна...

6
Эксперт С++
 Аватар для Phantom
3189 / 869 / 39
Регистрация: 29.12.2008
Сообщений: 951
25.04.2010, 14:35
dogged, интересный вопрос.
Первое что приходит в голову - это "подыгрывать" числа. Т.е. сгенерировать одно число, посмотреть сколько ещё до суммы не хватает и генерировать дальше по такому же принципу. Если набор чисел на каком-то этапе перебирает допустимую сумму, то сбрасывать одно или несколько последних чисел и заново генерировать.
Таких алгоритмов несколько можно придумать, они нетрудные для понимания и относительно быстрые по времени, но у них один существенный недостаток - числа тогда получатся неслучайные в полном понимании этого слова. Хотя, смотря какая задача, в принципе, такой подход может подойти.
Другой вариант - это сгенерировать числа - проверить сумму - если да, то оставить, если нет - сгенерировать по новой. тогда числа будут случайные, но придется сделать очень много итераций...
Так что вот такие два варианта.
0
Автор FAQ
 Аватар для insideone
3687 / 964 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
25.04.2010, 17:46
Phantom, мне кажется что только второй вариант будет "истинно честным" однако подождать действительно придется долго

А ещё можно сначало заполнить случайными а потом проверить каждый ряд и установить на сколько нужно эта сумма строкт расходится с необходиой и начинать случайно вычитать из случайных элементов до тех пока баланс не будет восстановлен и так по всем строкам.
0
2 / 2 / 1
Регистрация: 03.04.2010
Сообщений: 7
25.04.2010, 20:03  [ТС]
Сделал гораздо проще в итоге - случайное заполнение строчки случайными числами, потом суммирование всех чисел и деление каждого элемента на эту сумму. Т.е. нормировка.

Пример:
0.1 0.4 0.3 0.1

0.1/(0.1+0.4+0.3+0.1) 0.4/(0.1+0.4+0.3+0.1) 0.3/(0.1+0.4+0.3+0.1) 0.1/(0.1+0.4+0.3+0.1)

0.1111 0.4444 0.3333 0.1111
2
Платежеспособный зверь
 Аватар для кот Бегемот
8966 / 4389 / 1655
Регистрация: 28.10.2009
Сообщений: 11,647
26.04.2010, 09:35
я бы сделал так:
пусть сумма в строке равняется N, а количество элементов в строке=m
выбираем каждое число, кроме последнего, из диапазона целое(n/m), последнее число находим как разность N-(сумма найденных чисел)
0
Автор FAQ
 Аватар для insideone
3687 / 964 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
26.04.2010, 22:12
кот Бегемот, оно ль не вылезет за диапазон рандома?
0
Платежеспособный зверь
 Аватар для кот Бегемот
8966 / 4389 / 1655
Регистрация: 28.10.2009
Сообщений: 11,647
27.04.2010, 21:38
разумеется, вылезет, но
1. для последнего числа диапазона не будет, оно находится уже математически, по формуле, а иначе сумма не получится.
2. а где указано, какими должны быть числа?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.04.2010, 21:38
Помогаю со студенческими работами здесь

Написать процедуру заполнения массива случайными числами
Всех приветствую и прошу помощи.Занимаюсь Курсовой работой,программу написал,но нужно сделать в ней процедуру,чтобы заполнять массив...

Метод для заполнения массива случайными числами
Здраствуйте. Учусь по немного, изучаю Java. Стараюсь создать клас с одним полем int mat, гетери,сетери, toString. Создать метод который...

Функция заполнения матрицы случайными вещественными числами
Добрый день,нужна помощь с кодом.У меня есть функция которая отвечает за заполнение матрицы случайными числами,проблема в том что она...

Помогите исправить код заполнения матрицы случайными числами
Добрий день, виправте код пожалуйста, нужно что бы матрица заполнялася случайными числами include <iostream.h> #include...

Реализовать функцию заполнения заданной матрицы случайными числами
Помогите пожалуйста зациклить программу и сделать функцию рандомного заполнения . пыталась зациклить через while но ничего не получилось...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru