|
3 / 3 / 2
Регистрация: 30.07.2017
Сообщений: 223
|
|
Алгоритм поиска по выражениям больше/меньше23.11.2018, 13:34. Показов 4208. Ответов 53
Метки нет (Все метки)
Добрый день!
Необходимо реализовать алгоритм поиска значения по правилам больше/меньше. Например, есть параметр А и результирующий параметр В. Если А меньше или равно 10, то В = 0 Если А меньше или равно 15, то В = 0,5 Если А меньше или равно 20, то В = 1 Если А меньше или равно 25, то В = 1,5 Если А больше 25, то В = 2. Сами правила сохранены в виде таблицы в БД. С чего начать?
0
|
|
| 23.11.2018, 13:34 | |
|
Ответы с готовыми решениями:
53
RSA алгоритм. Закрытый ключ больше или меньше открытого ключа? Нужен алгоритм поиска пути в этом лабиринте (будь то волновой алгоритм или алгоритм правой/левой руки ) |
|
3 / 3 / 2
Регистрация: 30.07.2017
Сообщений: 223
|
|
| 23.11.2018, 15:43 [ТС] | |
|
Нет, последнее сработавшее правило не получится. Точнее получится, именно так я пытался сделать предварительно отсортировав, как вы выразились тут, "узловые значения" по убыванию и правила по убыванию (т.е. сначала применяются правила с больше, а потом с меньше). А если правила будут хаотичны, тогда результат не подходит
0
|
|
|
187 / 100 / 19
Регистрация: 15.09.2011
Сообщений: 801
|
|
| 23.11.2018, 15:45 | |
|
Элд Хасп, в C# можно через Expression<Func<T>> задать любое правило и действие на него. снова не попал?
0
|
|
|
3 / 3 / 2
Регистрация: 30.07.2017
Сообщений: 223
|
||
| 23.11.2018, 15:48 [ТС] | ||
|
umatkot, давайте попробую объяснить исходный пример еще раз.
Если значение А попадает в диапазон (-Infinity, +10], тогда результат должен быть 0 Если в диапазон (+10, +15] - 0,5 Если в диапазон (+15, +20] - 1 Если в диапазон (+20, +25] - 1,5 Если в диапазон (+25, +Infinity] - 2 Так понятнее? Извиняюсь за первоначальную неточность, надо было сразу так написать Добавлено через 56 секунд Короче пока вам задачу объяснял, понял примерно как её решать )))Добавлено через 1 минуту
0
|
||
|
187 / 100 / 19
Регистрация: 15.09.2011
Сообщений: 801
|
|||||||||||
| 23.11.2018, 16:29 | |||||||||||
|
wrq2017, не ну я точно тогда дурак. а почему формула не подходит то???? дайте пример, где она не сработает
Добавлено через 20 минут вот моя функция(пишу без студии, так как виртуалку грузить лень) в каких случая она не работает? https://dotnetfiddle.net/TFB1Oc Кликните здесь для просмотра всего текста
вот что выдаёт - Кликните здесь для просмотра всего текста
уже засыпаю, короче. надо сместить всё на 0,5 вправо...
0
|
|||||||||||
|
3 / 3 / 2
Регистрация: 30.07.2017
Сообщений: 223
|
||||||
| 23.11.2018, 16:40 [ТС] | ||||||
|
umatkot, исходные данные приведены для примера, если будет для последнего случая не 2, а 10.5? Переделывать формулу, переопределять индивидуальные случаи? Вариант с формулой НЕ катит. В любом случае, спасибо за направление мысли!
Добавлено через 4 минуты Делаю так. Класс условий:
Вот кажется уже рабочее решение... Прошу прокомментировать.
0
|
||||||
|
187 / 100 / 19
Регистрация: 15.09.2011
Сообщений: 801
|
||||||
| 23.11.2018, 16:58 | ||||||
|
данный свитч можно превратить в эквивалентного монстра
0
|
||||||
|
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,576
|
||||||
| 23.11.2018, 17:22 | ||||||
Сообщение было отмечено wrq2017 как решение
Решение
1
|
||||||
|
3 / 3 / 2
Регистрация: 30.07.2017
Сообщений: 223
|
||
| 23.11.2018, 21:02 [ТС] | ||
|
Вообще, Ваш вариант является немного измененным моим последним предложением. А принципиально другие идеи есть?
0
|
||
|
Модератор
|
||||||||||||
| 23.11.2018, 21:16 | ||||||||||||
Сообщение было отмечено wrq2017 как решение
РешениеКласс для создания условий
0
|
||||||||||||
|
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,576
|
|||||||||||||||||
| 23.11.2018, 21:48 | |||||||||||||||||
0
|
|||||||||||||||||
|
3 / 3 / 2
Регистрация: 30.07.2017
Сообщений: 223
|
||||||||
| 26.11.2018, 08:43 [ТС] | ||||||||
Так не быстрее будет? Добавлено через 3 минуты
0
|
||||||||
|
Модератор
|
||
| 26.11.2018, 13:55 | ||
|
Второй, способ можно сохранять в БД и функцию делегата, даже компилировать её во время исполнения, но в Вашем случае, такие сложности, по-моему, не нужны.
0
|
||
|
3 / 3 / 2
Регистрация: 30.07.2017
Сообщений: 223
|
|
| 27.11.2018, 09:02 [ТС] | |
|
Всем огромное спасибо за обсуждение вопроса! Тему можно считать закрытой.
0
|
|
| 27.11.2018, 09:02 | |
|
Написать алгоритм поиска данных методом линейного поиска
Алгоритм бинарного поиска (поиска делением пополам) Вывести элементы, присутствующие в обоих массивах А и В. Алгоритм сортировки - подсчетом, алгоритм поиска - двоичный
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Мастера простых решений
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, и я вновь нахожусь на той стороне, за экраном машины. Кто Я, откуда Я пришел и куда Я иду? Эти вопросы не оставляют меня ни на секунду. Жизнь на планете Земля. . .
|
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
|
|
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства.
Жизнь действительно предъявляет каждому. . .
|
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
|
Лето уходит
kumehtar 17.08.2026
|
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
|