3 / 3 / 2
Регистрация: 30.07.2017
Сообщений: 223

Алгоритм поиска по выражениям больше/меньше

23.11.2018, 13:34. Показов 4236. Ответов 53
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!
Необходимо реализовать алгоритм поиска значения по правилам больше/меньше.
Например, есть параметр А и результирующий параметр В.
Если А меньше или равно 10, то В = 0
Если А меньше или равно 15, то В = 0,5
Если А меньше или равно 20, то В = 1
Если А меньше или равно 25, то В = 1,5
Если А больше 25, то В = 2.
Сами правила сохранены в виде таблицы в БД.
С чего начать?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.11.2018, 13:34
Ответы с готовыми решениями:

Искомое число больше 400 и меньше 500. Составить алгоритм поиска этого числа
Искомое число больше 400 и меньше 500. Составить алгоритм поиска этого числа, если сумма его цифр равна 9 и оно равняется 47/36 числа,...

RSA алгоритм. Закрытый ключ больше или меньше открытого ключа?
Товарищи, ответьте пожалуйста на вопрос. Закрытый ключ больше или меньше открытого ключа? В методичке прочитал, что закрытый больше...

Нужен алгоритм поиска пути в этом лабиринте (будь то волновой алгоритм или алгоритм правой/левой руки )
#include "stdafx.h" #include <iostream> #include <conio.h> using namespace std; void lab () { int s1 = 0; int s2 =...

53
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 2
23.11.2018, 15:22
Студворк — интернет-сервис помощи студентам
Допустим у Вас будут записаны условия

Если А меньше или равно 10, то В = 0
Если А больше или равно 5, то В = 1

Какое должно вернуться значение для 7 ?
0
3 / 3 / 2
Регистрация: 30.07.2017
Сообщений: 223
23.11.2018, 15:24  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Не совсем понятно как действовать, в случае наложения условий.
Допустим, как у Вас в примере, если условие только одно "меньше-равно", то берём старшее. Это понятно.
А как быть с пересечением "меньше-равно", "больше-равно" и др.?
Наложение условий будет в другом месте проверяться. Его быть не должно. Или наоборот, если пользователь ввел некорректные условия, то и получил некорректный результат. Всё нормально

Добавлено через 58 секунд
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Допустим у Вас будут записаны условия
Если А меньше или равно 10, то В = 0
Если А больше или равно 5, то В = 1
Какое должно вернуться значение для 7 ?
Вероятно последнее в switch
0
187 / 100 / 19
Регистрация: 15.09.2011
Сообщений: 801
23.11.2018, 15:24
Цитата Сообщение от wrq2017 Посмотреть сообщение
Что значит почему???????? Условие такое!!!
Не надо кричать, если условие такое, тогда почему
Цитата Сообщение от wrq2017 Посмотреть сообщение
А если так? до 10 - 0,3
???????????????????????, почему не 0??????????????
Зависимость какая вообще? Может быть дадите более полное описание задачи?
0
3 / 3 / 2
Регистрация: 30.07.2017
Сообщений: 223
23.11.2018, 15:25  [ТС]
Давайте исходить из того, что условия корректны. Проверку условий тоже же можно организовать при вводе. Так?
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 2
23.11.2018, 15:25
То есть нужен какой-то прописанный алгоритм для разрешения конфликта между выполняющимися условиями.
В Excel применяется такой - последнее из выполнившихся. Вас такой устроит?
0
3 / 3 / 2
Регистрация: 30.07.2017
Сообщений: 223
23.11.2018, 15:26  [ТС]
umatkot, Еще раз - нет никакой зависимости. Это просто некоторые эмпирические данные.
0
187 / 100 / 19
Регистрация: 15.09.2011
Сообщений: 801
23.11.2018, 15:26
В первой строке, если A < 10, то B будет 0 или 0,3?
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 2
23.11.2018, 15:26
Цитата Сообщение от wrq2017 Посмотреть сообщение
Давайте исходить из того, что условия корректны. Проверку условий тоже же можно организовать при вводе. Так?
Они корректны, но пересекаются. Даже, в Вашем примере последнее условие пересекается со всеми предыдущими.
0
3 / 3 / 2
Регистрация: 30.07.2017
Сообщений: 223
23.11.2018, 15:28  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
То есть нужен какой-то прописанный алгоритм для разрешения конфликта между выполняющимися условиями.
В Excel ? применяется такой - последнее из выполнившихся. Вас такой устроит?
Да, но речь пока не про корректность, а, в принципе, про их применение

Добавлено через 1 минуту
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Они корректны, но пересекаются. Даже, в Вашем примере последнее условие пересекается со всеми предыдущими.
В моем примере предполагалось применять наиболее подходящее правило. То есть если А = 3, то В =0. Если А = 17, В = 1
0
187 / 100 / 19
Регистрация: 15.09.2011
Сообщений: 801
23.11.2018, 15:29
Цитата Сообщение от wrq2017 Посмотреть сообщение
C#
1
2
3
4
5
6
7
8
9
10
11
if (temp < rangeValues[i].SourceValue) 
{ result = rangeValues[i].BOValue; } break; 
case (int)ComparsionTypeId.LessOrEqual: 
if (temp <= rangeValues[i].SourceValue) 
{ result = rangeValues[i].BOValue; } break; 
case (int)ComparsionTypeId.Bigger: 
if (temp > rangeValues[i].SourceValue) 
{ result = rangeValues[i].BOValue; } break; 
case (int)ComparsionTypeId.BiggerOrEqual: 
if (temp >= rangeValues[i].SourceValue) 
{ result = rangeValues[i].BOValue; }
Я про то пишу, что во всех узлах CASE у вас везде одна и та же операция result = rangeValues[i].BOValue
смысл от case вообще не наблюдаю
0
3 / 3 / 2
Регистрация: 30.07.2017
Сообщений: 223
23.11.2018, 15:32  [ТС]
Цитата Сообщение от umatkot Посмотреть сообщение
В первой строке, если A < 10, то B будет 0 или 0,3?
В самом первом примере - 0. С чего Вы взяли про 0,3? Это именно такой диапазонный поиск, никакой интерполяции нет.

Добавлено через 1 минуту
Цитата Сообщение от umatkot Посмотреть сообщение
Я про то пишу, что во всех узлах CASE у вас везде одна и та же операция result = rangeValues[i].BOValue
смысл от case вообще не наблюдаю
А операторы IF для чего?

Добавлено через 56 секунд
umatkot, я в первый раз сталкиваюсь с подобным алгоритмом. Поэтому предполагал, что уже у кого-то этот велосипед отлажен. Поэтому и задал вопрос на форуме.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 2
23.11.2018, 15:33
Цитата Сообщение от wrq2017 Посмотреть сообщение
Да, но речь пока не про корректность, а, в принципе, про их применение
Сейчас в дороге - VS под рукой нет.
Но если взять принцип из Exсel, то реализация такая.
Where - по условию: выполнено или нет
Если хоть одно выполнилось (Count > 0), то берём последнее условие (метод - Last) и его вычисляем.
0
187 / 100 / 19
Регистрация: 15.09.2011
Сообщений: 801
23.11.2018, 15:34
или лыжи не едут или автор неправильно сформулировал вопрос.
0
3 / 3 / 2
Регистрация: 30.07.2017
Сообщений: 223
23.11.2018, 15:35  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Они корректны, но пересекаются. Даже, в Вашем примере последнее условие пересекается со всеми предыдущими.
Тут меня такая мысль посетила. В класс условий можно загнать не одну границу, а две. Чтобы конкретно был диапазон. Но тогда надо определять строгость границ диапазона как-то.

Добавлено через 1 минуту
Цитата Сообщение от umatkot Посмотреть сообщение
или лыжи не едут или автор неправильно сформулировал вопрос.
Вполне возможно Пытался на примере с исходными данными и промежуточными результатами уже
0
187 / 100 / 19
Регистрация: 15.09.2011
Сообщений: 801
23.11.2018, 15:35
wrq2017, ещё раз пишу, что в вашем switch не важно, какое условие case выберется - всегда будет выражение result = rangeValues[i].BOValue;
0
3 / 3 / 2
Регистрация: 30.07.2017
Сообщений: 223
23.11.2018, 15:35  [ТС]
Цитата Сообщение от umatkot Посмотреть сообщение
или лыжи не едут или автор неправильно сформулировал вопрос.
Вполне возможно Пытался на примере с исходными данными и промежуточными результатами уже
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 2
23.11.2018, 15:37
Цитата Сообщение от wrq2017 Посмотреть сообщение
Тут меня такая мысль посетила. В класс условий можно загнать не одну границу, а две. Чтобы конкретно был диапазон. Но тогда надо определять строгость границ диапазона как-то.
Всё зависит от конечного результата который вы хотите получить.
Надо продумать алгоритм целиком. Допустим, а что делать со значениями не попавшими ни в один диапазон?
Как один из вариантов, вначале надо присвоить B какое-то значение по умолчанию, а потом уже проверять по условиям, и если они выполняются, то присвоить значение из последнего условия.
1
187 / 100 / 19
Регистрация: 15.09.2011
Сообщений: 801
23.11.2018, 15:37
такое ощущение, что я прохожу мимо двух конструкторов космического корабля, которые обсуждают, какой диапазон значений выбрать для нового датчика какого-там узла и мне так невзначай задают вопрос - а вы как думаете?)))
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 2
23.11.2018, 15:39
Цитата Сообщение от wrq2017 Посмотреть сообщение
Вполне возможно Пытался на примере с исходными данными и промежуточными результатами уже
Вы пока подумайте, а я занят несколько часов. Если до вечера не решите - займусь уже поглубже.

Добавлено через 1 минуту
Цитата Сообщение от umatkot Посмотреть сообщение
такое ощущение, что я прохожу мимо двух конструкторов космического корабля, которые обсуждают, какой диапазон значений выбрать для нового датчика какого-там узла и мне так невзначай задают вопрос - а вы как думаете?)))
Условное форматирование в Excel видели? Нужно нечто подобное.
0
187 / 100 / 19
Регистрация: 15.09.2011
Сообщений: 801
23.11.2018, 15:41
давайте сами, вижу вы на одной волне что-то там поймали, я до сих пор задачу не вкурил. видать, надо не одну докторскую написать, чтобы адекватно встревать в обсуждение.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.11.2018, 15:41

Написать алгоритм поиска данных методом линейного поиска
написать алгоритм поиска данных методом линейного поиска

Волновой алгоритм поиска (Алгоритм A* / Алгоритм А стар)
Хочу разработать алгоритм для решения головоломки с подвижными дисками (перестановочная головоломка). Определение. Перестано́вочные...

Алгоритм бинарного поиска (поиска делением пополам)
Необходимо реализовать алгоритм бинарного поиска (поиска делением пополам). Алгоритм в качестве входных данных получает массив...

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

Алгоритм поиска образа в строке. Алгоритм Бойера-Мура
# Лабораторная работа № 1 # Поиск образа в строке def forming_d(pattern): &quot;&quot;&quot; Формируем массив d.&quot;&quot;&quot; d...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Опции темы

Новые блоги и статьи
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2. Задача: Обеспечить запись документа в регистр сведений независимо от. . .
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется. Ну как вам?
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания источниках данных и элементов формы(текстовые поля и метки), опирается все это на технологию событий и мета. . .
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml, в чате форсили функторы модулей как суперфичу. Пытаясь отдуплить концепт, наткнулся на тутор с простым примером. А главный принцип обучения от. . .
Сегодня суббота, 22.08.2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины.
zorxor 22.08.2026
Сегодня суббота, 22. 08. 2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины. Кто Я, откуда Я пришел и куда Я иду? Эти вопросы не оставляют меня ни на секунду. Жизнь на планете Земля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru