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

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

05.09.2011, 02:14. Показов 3749. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал. Оно само - говорит. Кто слышит тот слышит.
Оказывается, Unreal Engine позволяет качество на порядки выше, чем было в Lineedge
Etyuhibosecyu 05.07.2026
Жаль, конечно, что я не узнал об этом, пока Lineedge существовала, а то бы Noname2331 написал, что волки превращаются в пиксельную кашу, а я бы его попросил скачать какую-нибудь бриллиантовую или Pro. . .
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru