Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.69/16: Рейтинг темы: голосов - 16, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 05.09.2011
Сообщений: 13

Перебор значений double

05.09.2011, 02:14. Показов 3989. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем, весь день сижу и думаю над алгоритмом следующего

Нам известна функция которая принимает один параметр типа double и возвращает double.

Реализация функции неизвестна, но известны некоторые особенности:
  1. При вызове функции с параметром 0.0, мы получим число меньше нуля
  2. При вызове функции с параметром 1.0, мы получим число больше нуля
  3. Есть лишь единственное значение Х, между 0.0 и 1.0, при которых функция вернет 0

  • Цель - написать функцию перебора чисел от 0.0 до 1.0 чтобы найти при каком значение Х мы получим 0 из функции о которой писалось выше.


Естественно, double - число довольно здоровое, и хотя мы ограничены определенным диапозоном, у нас всеравно остается куча вариантов для перебора.. [0.000000000000001 ; 0.999999999999999] Простой перебор, увеличение Х на 0.000000000000001 в цикле, займет вечность, хотя и будет самым точным..

Пробовал ограничить кол-во перебора с помощью нахождения Х-а при котором передаваемый параметр был минимальным, но так и не придуал как это граммотно реализовать. Выходило что ограничить мог не так и сильно, либо получал не те результаты..

Можетбыть кто знает какие способы по скоращению времени на перебор в данном случае? Или куда глядеть дальше по этой теме?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.09.2011, 02:14
Ответы с готовыми решениями:

Ошибки error C2296: -: недопустимо, левый операнд имеет тип "double (__cdecl *)(double,double,double
Думаю из-за polp #include<iostream> #include<cmath> #include<cstdlib> using namespace std; double polp(double af,double...

Ошибка: error LNK2001: unresolved external symbol "double __cdecl Akk(double,double,double)"
#include <iostream> #include <cmath> using namespace std; double Akk(double x, double y, double z); int main() { int a, b, c; ...

перебор значений
Вывести на экран в возрастающем порядке все трехзначные числа, в десятичной записи которых нет одинаковых цифр.

30
Эксперт С++
 Аватар для grizlik78
2383 / 1667 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
05.09.2011, 03:57
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Amell Посмотреть сообщение
Тобишь, метод половинного деления будет работать только если математически функция монотонная, я правильно понял?
Важнее количество смен знака. Функции не обязательно быть монотонной, но не должно быть больше одной смены знака.
0
 Аватар для alkagolik
1599 / 622 / 113
Регистрация: 15.07.2011
Сообщений: 3,548
05.09.2011, 03:57
Цитата Сообщение от grizlik78 Посмотреть сообщение
потребуется очень быстрый вычислитель и очень много времени
ну это и так понятно. до меня не доходит просто как будет проверяться возвращаемое значение функции, очевидно что ее надо "выудить"... это наверное не в тот форум.
0
Эксперт С++
 Аватар для grizlik78
2383 / 1667 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
05.09.2011, 04:00
alkagolik, ну насколько я понимаю задание — функцию можно вызывать с любыми аргументами, но нет возможности её дизассемблировать. Например программа выполняется на удалённом сервере, куда можно лишь отправить программу.
0
 Аватар для alkagolik
1599 / 622 / 113
Регистрация: 15.07.2011
Сообщений: 3,548
05.09.2011, 04:02
то бишь возврат проверить можно... забыл имя грека, чей это алгоритм (деление пополам) напомни пожалуйста.
0
Эксперт С++
 Аватар для grizlik78
2383 / 1667 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
05.09.2011, 04:07
Ну, в этом контексте мне только Апории Зенона с его Ахиллесом и черепахой вспоминаются. Но вообще-то про дихотомию мы уже третий десяток постов разговариваем
0
0 / 0 / 0
Регистрация: 05.09.2011
Сообщений: 13
05.09.2011, 04:08  [ТС]
Возврат можно провреить всегда. Т.е. дано полное право вызивать функцию d_Function из другой функуии - например double Search(); сколько угодно раз
0
0 / 0 / 0
Регистрация: 05.09.2011
Сообщений: 13
05.09.2011, 04:09  [ТС]
Возврат можно провреить всегда. Т.е. дано полное право вызивать функцию d_Function из другой функуии - например double Search(); сколько угодно раз
0
0 / 0 / 0
Регистрация: 05.09.2011
Сообщений: 13
05.09.2011, 04:11  [ТС]
извиняюсь, произошел сбой с Gateway... Итого прошлый пост запостился дважды.
0
 Аватар для alkagolik
1599 / 622 / 113
Регистрация: 15.07.2011
Сообщений: 3,548
05.09.2011, 04:12
Цитата Сообщение от grizlik78 Посмотреть сообщение
Ну, в этом контексте мне только Апории Зенона с его Ахиллесом и черепахой вспоминаются
ну и не надо)) все равно сам найду, узнаю и запомню
0
0 / 0 / 0
Регистрация: 05.09.2011
Сообщений: 13
05.09.2011, 06:01  [ТС]
В ситуациях когда знак у функции за указанный промежуток меняется не один раз остается только перебор?

Добавлено через 43 минуты
Так же в условии сказано, есть только одно значение параметра при котором функция вернет 0, следовательно она меняет знак лишь однажды... Итого данный метод должен сработать.
0
Эксперт С++
 Аватар для Thinker
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
05.09.2011, 08:05
Если известно, что функция просто непрерывная и возвращает только знаки (>0, <0, =0), то все зависит от точки, в которой f(x)=0. Если она иррациональная, то ваши поиски могут быть бесплодными. Если же эта точка помещается в double, то если больше никакой информации об f(x) неизвестно, то самый простой способ это упомянутый участниками форума выше. Чтобы найти точное значение этой точки, возможно, придется много перебрать значений, а приближенное значение можно очень быстро найти.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.09.2011, 08:05

Перебор значений
Комрады, как мне заставить программу подбирать значение х и у не только парные (если х=1, то и у будет = 1), но и перебирать значения? ...

Перебор значений
Вывести на экран в возрастающем порядке все трехзначные числа, в десятичной записи которых нет одинаковых цифр.

Перебор и сравнение значений
Добрый день. Столкнулся с проблемой перебора. Есть входные данные и массив с константами. Требуется входные данные сравнить с константами и...

Перебор действительных значений в цикле
Ребят, вот только начал изучать с++ и сразу же возник вопрос. Есть X-начальное и X-конечное, как создать цикл или же перебрать все...

Перебор возможных значений для трёх чисел
Доброго времени суток. Нужно перебрать все возможные значения трёх чисел. их сума равна 1. перебрать нужно с шагом 0,01, например 0,01...


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

Или воспользуйтесь поиском по форуму:
31
Ответ Создать тему
Новые блоги и статьи
Транслитерация текста с кириллицы на латиницу
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru