Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Алгоритмы

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11

Открыть новую тему     Написать ответ в эту тему

akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
все вопросы по алгоритмам, их созданию и сопровождению без привязки к какому-нибудь конкретному языку программирования...
ну или с привязкой :)
дать идею, помочь с математикой или, если вам не помогли в профильном топе...
 
по возможности используйте псевдокод в своих сообщениях
 
ссылки
 
  •  "ebook'и -- сборники алгоритмов"
     


    только помните, что тут никто ничего _делать за вас_ не обязан!
    для этого есть специальные места со своими ценами...

  • Всего записей: 24126 | Зарегистр. 06-12-2002 | Отправлено: 09:28 16-12-2016 | Исправлено: akaGM, 09:03 12-07-2019
    m00slim25



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    akaGM
     
    Не сглаживании, а напротив - искривлении. Примерно вот так
    Это кривые Безье, по сути - идеальный вариант, но мне до такого пока ещё очень далеко.

    Всего записей: 1039 | Зарегистр. 30-05-2006 | Отправлено: 13:45 12-01-2021 | Исправлено: m00slim25, 13:45 12-01-2021
    akaGM

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    m00slim25

    Цитата:
    Это кривые Безье
    во-во, лучше не придумаешь...

    Цитата:
    но мне до такого пока ещё очень далеко.
    а в чём проблема?
    библиотек-реализаций -- до jопы, ешь не хочу...

    Всего записей: 24126 | Зарегистр. 06-12-2002 | Отправлено: 13:54 12-01-2021
    Mavrikii

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    m00slim25

    Цитата:
    Это кривые Безье

    в общем случае, сплайны.
    https://ru.wikipedia.org/wiki/B-сплайн
    у Безье кривая проходит только через конечные точки.
     
    Построение оптимального сплайна Безье
    http://mech.math.msu.su/~fpm/ps/k16/k163/k16304.pdf
     
    проще - https://learn.javascript.ru/bezier

    Всего записей: 15135 | Зарегистр. 20-09-2014 | Отправлено: 07:59 13-01-2021 | Исправлено: Mavrikii, 08:03 13-01-2021
    akaGM

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    m00slim25

    Цитата:
    Не сглаживании, а напротив - искривлении

    а вообще я тогда не очень понял задачу...
    есть таблица отсчётов прибора и надо что-то по ней построить или надо что-то мониторить в риал-тайме?
     
    и тем не менее во всех случаях надо хорошо знать аналитическую геометрию :)

    Всего записей: 24126 | Зарегистр. 06-12-2002 | Отправлено: 14:11 13-01-2021
    destiny child



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Приветствую!
     
    Есть диапазон времени работы точки: {StartTimeX; EndTimeY}.
    Есть список продавцов, работающих там: Master1, Master2, Master3,...
    У каждого из них есть список слотов времени, когда они работают в этом магазине:
    [Slot1{timeX; timeY}, Slot2{timeX; timeY}, Slot3{time; timeY}, ....]
    Список может быть пустым, может содержать один слот, равный {StartTimeX, EndTimeY}, или несколько слотов.  
    Причем обязательно следующий слот точно не перекрывает предыдущий/не начинается с него.
    Т.е. если их, к примеру, два - то время окончания первого слота точно не является временем начала следующего.  
    У него время начала хотя бы на кратный 5 минутам отрезок времени, но будет дальше: {15:30;16:45}, {16:50;19:05}.
    Надо для каждого продавца найти список слотов их НЕрабочего времени!
    Простейший пример: В магазине время работы {10:00; 22:00}, Продавец работает [{13:00; 17:00}, {19:30; 22:00}].  
    Значит итоговый искомый список слотов нерабочего времени: [{10:00; 13:00}, {17:00; 19:30}].  
    Продавец работает [{11:30; 22:00}]. Значит список слотов нерабочего времени: [{10:00; 11:30}].  
    Продавец работает [], т.е. не работает. Значит список слотов нерабочего времени: [{10:00; 22:00}]  
    В этом списке концы слотов времени конечно же могут и должны равняться концам/началам слотов рабочего времени  
    и/или магазина/продавца. Конечно же список может быть и пустым, т.к. продавец работает полностью {от и до}.
     
    Есть идеи какой тут простой)) алгоритм поиска может быть применен?  
    Ищется решение под питон, под какие-нить готовые библиотеки, связанные с временем/датой...

    Всего записей: 3325 | Зарегистр. 01-04-2006 | Отправлено: 19:32 01-03-2021 | Исправлено: destiny child, 19:37 01-03-2021
    Mavrikii

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    destiny child
    сделайте в лоб - выбираете слоты для продавца, сортируете по времени начала.
    и далее тупо проверяете перебирая их, чтобы разница между окончанием и началом была не больше 5 минут. если больше - временной интервал добавляется в нерабочий. будет работать без проблем, раз изначально нет перекрытия.

    Всего записей: 15135 | Зарегистр. 20-09-2014 | Отправлено: 20:02 01-03-2021 | Исправлено: Mavrikii, 20:03 01-03-2021
    XPerformer



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    https://www.youtube.com/watch?v=lyZQPjUT5B4
     
    Сортировка пузырьком в исполнении венгерских танцоров
     

    Всего записей: 2536 | Зарегистр. 20-06-2011 | Отправлено: 12:30 07-03-2021
    komputeryuzer

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Nадежны ли эк. кл-ры?
    Пожьзуюсь ею, постоянно в голове крутится вопрос
    Почему кейжпгер не может по координатам мыши вычислить клавишу?

    Всего записей: 764 | Зарегистр. 21-04-2010 | Отправлено: 11:02 04-07-2021
    akaGM

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    залип, казалось бы, в пустяковой вещи...
     
    есть два массива чисел (будем называть их массивы координат), второй меньше первого.
    задача вставить меньший в больший с сохранением размера последнего.
    даже в тупом поэлементном переборе делаю ошибки.
    может есть какой-нибудь универсальный метод insert_one_2_second() в любой из библиотек,
    ведь не все же я их знаю и посмотрел ?
     
    сейчас задача решена (потому что надо было быстро) с помощью двух файлов.
    но это некрасиво и неэффективно и... осадочек остался :)
     
    заранее за любые советы :)

    Всего записей: 24126 | Зарегистр. 06-12-2002 | Отправлено: 14:46 08-09-2023
    MBK2

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    есть два массива чисел (будем называть их массивы координат), второй меньше первого.
    задача вставить меньший в больший с сохранением размера последнего.

    Брр? Как можно вставить один массив в другой, не изменяя размер последнего?

    Всего записей: 4586 | Зарегистр. 18-09-2018 | Отправлено: 15:17 08-09-2023
    akaGM

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    [2.2  3.9] --> [1  2  3  4  5] == [1  2.2  3  3.9  5]
     
    вот так...

    Всего записей: 24126 | Зарегистр. 06-12-2002 | Отправлено: 15:22 08-09-2023
    MBK2

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    А по какому принципу именно 2 меняется на 2.2 а не 3? В соседнем же случае наоборот он меняет большее?

    Всего записей: 4586 | Зарегистр. 18-09-2018 | Отправлено: 15:24 08-09-2023
    akaGM

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    огругление :)
     
    я ж оговорился -- "координаты", это реальные координаты физ.величины...

    Всего записей: 24126 | Зарегистр. 06-12-2002 | Отправлено: 15:34 08-09-2023
    MBK2

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    огругление
     

    Ну а если было бы [2.2  3.9] --> [1  3] ?

    Всего записей: 4586 | Зарегистр. 18-09-2018 | Отправлено: 15:47 08-09-2023
    akaGM

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    не понял...
    вернее, ты задачу не понял?
     
    есть массив, большой. в него надо вставить другой, с замещением, при этом размер бОльшего не меняется...
     
    а...
    может так?
     
    [X1..Xn] --> [Y1..Ym] == [Z1..Zm]
    где n < m всегда и для каждого n и m. строго меньше! условие даже жёстче << (много меньше) в "тысячу" вставить "десяток"
     
    т.е. такой случай
    [2.2  3.9] --> [1  3]
    исключён без проверок...
     
    Добавлено:
     
    +
     
    [X1..Xn] подмассив [Y1..Ym], т.е.
    Y1 < X1 < Ym
    Y1 < Xn < Ym
     
    всегда

    Всего записей: 24126 | Зарегистр. 06-12-2002 | Отправлено: 16:16 08-09-2023
    MBK2

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    вернее, ты задачу не понял?
     

    Немного не так. Это вы нестрого сформулировали условие задачи, а я помогаю вам сформулировать четкое ТЗ, которое поможет запилить правильный алгоритм. Приведенное уточнение улучшает дело, но не до конца.
    Вот такой вариант
    [2.2  3.9] --> [1  5 6]

    Всего записей: 4586 | Зарегистр. 18-09-2018 | Отправлено: 16:31 08-09-2023
    akaGM

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    [2.2  3.9] --> [1  5 6] == [2.2  3.9  6]
     

    Цитата:
    Это вы нестрого сформулировали условие задачи
    это я умею... не
    себе и так сойдёт :)
     
    твой пример не катит "по условию" sizeof(dim1) << sizeof(dim2)

    Всего записей: 24126 | Зарегистр. 06-12-2002 | Отправлено: 16:39 08-09-2023
    MBK2

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    твой пример не катит "по условию" sizeof(dim1) << sizeof(dim2)

    C 'этим разобрались в прошлый раз, понятно. А вот с этим случаем

    Цитата:
    [2.2  3.9] --> [1  5 6] == [2.2  3.9  6]

    все равно неясно. Чуть изменим условие
    [2.2  3.9  4.1] --> [1  5  6  7]

    Всего записей: 4586 | Зарегистр. 18-09-2018 | Отправлено: 16:44 08-09-2023
    akaGM

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    [2.2  3.9  4.1] --> [1  5  6  7] == [2.2  3.9  4.1  7]
     
    послушай, эти массивы -- тривиальная абсцисса -- х-координата...
    маленький массив -- _точные_ координаты характеристических пиков, их не бывает больше сотни, _никогда_
     
    большой массив -- просто равномерная (эквидистантная) сетка, размер _всегда_ больше 1000
    мне важно, чтобы координаты пиков всегда присутствовали в конечном массиве, что они там заместят, вообще говоря, наплевать...
    сейчас задача на клиенте решается наложением второго поверх первого (хотя бы при визуализации), просто (уже практически _для себя_) хочу сделать проще...
    все численные расчёты с этими пиками ведутся с "маленьким" массивом, его никто не теряет...
     
    Добавлено:
     
    короче нужен абстрактный метод insert_with_replace_one_numarray_into_another(N1,X1,N2,X2)
     
    Добавлено:
     
    где-то в питоне я такое готовое видел...
    щас спрошу :)

    Всего записей: 24126 | Зарегистр. 06-12-2002 | Отправлено: 18:12 08-09-2023 | Исправлено: akaGM, 18:23 08-09-2023
    MBK2

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    [2.2  3.9  4.1] --> [1  5  6  7] == [2.2  3.9  4.1  7]

    Логика этого алгоритма вообще противоестественна - выходит, что даже уже ни о каком округлении речи нет,  новые элементы вытесняют старые, даже бОльшие их по значению и вне входящего интервала? Ну ладно я три значения дал внутри интервала 1-5 а если их десять будет? Получится, что значения внутри этого интервала вытеснят собой все остальные, что совершенно нелогично.
    Странная у вас задача какая то, может, лучше и вправду найти уже реализованный алгоритм, который под вашу конкретную задачу заточен (если вы говорите что таковой имеется) и восстановить его?

    Всего записей: 4586 | Зарегистр. 18-09-2018 | Отправлено: 18:49 08-09-2023
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 1 2 3 4 5 6 7 8 9 10 11

    Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Алгоритмы


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru