2 / 2 / 0
Регистрация: 18.09.2016
Сообщений: 89
|
||||||
1 | ||||||
Зачарованный рандом24.03.2019, 18:39. Показов 1076. Ответов 17
Метки нет (Все метки)
Подскажите, что у меня не так?
Мне нужно создать 4 массива, заполненные рандомными числами. Написал всё, запускаю, происходит непонятно что - все массивы заполняются рандомно, но при этом все массивы кроме первого абсолютно идентичны. Решил пройтись в отладчике от самого начала, и знаете? Как только начинаешь идти отладчиком - всё работает. Снова запускаешь просто так и всё как прежде. Отмечу ещё вот что: параллельно с этим у меня одна и та же переменная принимает случайные значения, так же четыре раза. История абсолютно такая же, первое число уникальное, все остальные одинаковые. Вот код всего этого дела (main() обрезан):
0
|
24.03.2019, 18:39 | |
Ответы с готовыми решениями:
17
Рандом в С++ Рандом рандом рандом |
19409 / 10028 / 2443
Регистрация: 30.01.2014
Сообщений: 17,678
|
|
24.03.2019, 18:58 | 2 |
Alex_fmv, много вы вырезали из оригинального кода? В идеале хотелось бы весь код посмотреть, возможно что-то важное упущено.
1
|
2 / 2 / 0
Регистрация: 18.09.2016
Сообщений: 89
|
||||||
24.03.2019, 19:08 [ТС] | 3 | |||||
Да, конечно, однако уверяю, всё действо происходит сугубо здесь.
Вот весь файл целиком (Прошу прощения за отсутствие комментариев (Код временный для отладочной цели)):
0
|
19409 / 10028 / 2443
Регистрация: 30.01.2014
Сообщений: 17,678
|
|
24.03.2019, 19:23 | 4 |
Alex_fmv, State.h тоже покажите и если еще что-то есть, то и его. Весь код, короче.
В уже представленному коде нет указаний на такое странное поведение, поэтому надо посмотреть все файлы на предмет некорректной работы с памятью (самое простое объяснение вашей ситуации).
1
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
|
24.03.2019, 19:33 | 5 |
В чем здесь смысл?
Вы, кстати как из цыкла выходите? Или я слепой? Ну и да, показывайте весь код.
1
|
19409 / 10028 / 2443
Регистрация: 30.01.2014
Сообщений: 17,678
|
|
24.03.2019, 19:38 | 6 |
Azazel-San, я так понимаю, что его проблема проявляется еще до запуска этого кода. Давай критиковать остальной код будем после выяснения основной причины, иначе автор запутается совсем
1
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
|
24.03.2019, 19:42 | 7 |
Или я не понял или таки после запуска, здесь конечно интересно как он проверил это, если у него бесконечный цикл.
Или скорее всего это мы чего-то не знаем из-за того что ТС не предоставил весь код. Да, соглашусь.
1
|
2 / 2 / 0
Регистрация: 18.09.2016
Сообщений: 89
|
|
24.03.2019, 19:43 [ТС] | 8 |
Поясню: У меня есть основной проект, класс State относится прямиком к нему.
Для корректной работы проекта необходимы некоторые значения в количестве 33 штуки (числа float ). Эти значения титанически трудно подобрать вручную. Было решено использовать генетический алгоритм, который сам подберёт нужные значения путём выборки наиболее лучших симуляций. Иными словами, я запускаю main, дожидаюсь, пока симуляции не станут стабильными и долгими (Тобишь найдена наилучшая комбинация всех 33 параметров), сохраняю полученные значения и просто вписываю их в программу. ДАЛЕЕ ВЕСЬ КОД В ФАЙЛЕ MAIN УДАЛЯЕТСЯ НАПРОЧЬ, так как он уже исполнил свою роль. Именно поэтому мне не нужен выход из цикла, когда нужно будет, я сам закрою программу. Что же до остальных файлов, то я могу перебросить проект архивом (файлы большие и тут это будет неудобно)
0
|
19409 / 10028 / 2443
Регистрация: 30.01.2014
Сообщений: 17,678
|
|
24.03.2019, 19:47 | 9 |
Да это как угодно. Главное, что чтобы вам помочь, нужно видеть все то же, что и видите вы.
Добавлено через 48 секунд Он же написал:
1
|
2 / 2 / 0
Регистрация: 18.09.2016
Сообщений: 89
|
|
24.03.2019, 19:48 [ТС] | 10 |
Вот архив с проектом (Уточню, что вместо мэйна у меня MarketSimulator.cpp)
И да, благодарю за ваши старания, вы все очень любезны
0
|
2 / 2 / 0
Регистрация: 18.09.2016
Сообщений: 89
|
|
24.03.2019, 19:52 [ТС] | 11 |
Так же хочу отметить, что утечек обнаружено не было (под программу выделяется 0,1 гб и больше это значение не растёт)
0
|
Модератор
13727 / 10923 / 6479
Регистрация: 18.12.2011
Сообщений: 29,155
|
|
24.03.2019, 19:52 | 12 |
Не вижу кода метода SetValues.
Он часом не переставляет указатели вместо того, чтобы копировать массивы? И ещё: в классе Gene полностью нарушено правило трех - 1. нет копиконструктора 2. не перегружен opertator= 3. нет деструктора
1
|
2 / 2 / 0
Регистрация: 18.09.2016
Сообщений: 89
|
|
24.03.2019, 19:55 [ТС] | 13 |
SetValues() отрабатывает как нужно, копируя все значения.
Копиконструктор я не посчитал нужным реализовывать в рамках проекта, так как в будущем он использоваться совсем не будет. В цикле while я это учитывал, поэтому написал перегрузку оператору =
0
|
19409 / 10028 / 2443
Регистрация: 30.01.2014
Сообщений: 17,678
|
|
24.03.2019, 19:56 | 14 |
Сообщение было отмечено Alex_fmv как решение
Решение
Alex_fmv, причину проблемы этой темы нашел. Уберите
srand(time(0)); из State::State(unsigned count, unsigned start_capital) . Т.к. в релизе между разными вызовами конструктора не успевает пройти больше одной секунды, у вас генератор псевдослучайных чисел все время начинает отсчитывать с одного и того же места. В дебаге же вносится задержка и эффект пропадает. Уберите эту строку совсем из конструктора.
0
|
2 / 2 / 0
Регистрация: 18.09.2016
Сообщений: 89
|
|
24.03.2019, 20:00 [ТС] | 15 |
Вот видео, тут всё наглядно:
0
|
2 / 2 / 0
Регистрация: 18.09.2016
Сообщений: 89
|
|
24.03.2019, 20:03 [ТС] | 16 |
Да, действительно, всё заработало!
Благодарю, самому в этом было бы не разобраться. Так же спасибо всем, кто так же старался мне помочь
0
|
DrOffset
|
24.03.2019, 20:05
#17
|
Не по теме: Alex_fmv, очень надеюсь, что в будущем вы учтете этот опыт и сразу будете стараться предоставлять весь возможный материал. Т.к. проблема действительно оказалась в том участке кода, который вы изначально не показали. Очень утомительно выпытывать из авторов неполных постов детали.
0
|
2 / 2 / 0
Регистрация: 18.09.2016
Сообщений: 89
|
|
24.03.2019, 20:31 [ТС] | 18 |
Да, хорошо, впредь так и буду поступать
1
|
24.03.2019, 20:31 | |
24.03.2019, 20:31 | |
Помогаю со студенческими работами здесь
18
Рандом Рандом рандом Рандом в табилце Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Как написать микросервис на Go/Golang
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang
Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
|
Как написать микросервис с нуля на C#
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
|
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
|
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
|
Как создать игру "Танчики" на Unity3d и C#
InfoMaster 14.01.2025
Разработка игр – это увлекательный процесс, сочетающий в себе творчество и технические навыки. В этой статье мы рассмотрим создание классической игры "Танчики" с использованием Unity3D и языка. . .
|
Организую платный онлайн микро-курс по доработке Android-клиента Telegram
_Ivana 14.01.2025
Официальная версия и распространенные форки не полностью устраивают? Сделай свою кастомную версию клиента!
4 занятия по 2 часа (2 недели пн, ср 19:00-21:00 по Москве).
Первое вводное занятие. . .
|
Как создать приложение для фитнеса для iOS/iPhone на Kotlin
InfoMaster 14.01.2025
Создание собственного фитнес-приложения — это не только захватывающий, но и полезный процесс, ведь оно может стать вашим верным помощником на пути к здоровому и активному образу жизни. В современных. . .
|
Как создать приложение магазина для iOS/iPhone на Swift
InfoMaster 14.01.2025
Введение в разработку iOS-приложений
Разработка приложений для iPhone и других устройств на базе iOS открывает огромные возможности для создания инновационных мобильных решений. В данной статье мы. . .
|
Это работает. Скорость асинхронной логики велика. Вопрос видимо останется в стабильности. Плата - огонь!
Hrethgir 13.01.2025
По прошлому проекту в Logisim Evolution https:/ / www. cyberforum. ru/ blogs/ 223907/ blog8781. html прилагаю файл архива проекта в Gowin Eda. Восьмибитный счётчик из сумматора+ генератор сигнала. . .
|
UserScript для подсветки кнопок языков программирования в зависимости от текущего раздела
volvo 13.01.2025
В результате работы этого скрипта подсвечиваются нужные кнопки не только в форме быстрого ответа, но и при редактировании сообщения:
/ / ==UserScript==
/ / @name CF_DefaultLangSelect
/ / . . .
|
Введение в модели и алгоритмы машинного обучения
InfoMaster 12.01.2025
Машинное обучение представляет собой одну из наиболее динамично развивающихся областей искусственного интеллекта, которая фокусируется на разработке алгоритмов и методов, позволяющих компьютерам. . .
|
Как на Python создать нейросеть для решения задач
InfoMaster 12.01.2025
В контексте стремительного развития современных технологий особое внимание уделяется таким инструментам, как нейросети. Эти структуры, вдохновленные биологическими нейронными сетями, используются для. . .
|