zombi 0 12 ноября, 2012 Опубликовано 12 ноября, 2012 · Жалоба Есть подпрограмма написанная давным давно и не мной. На вход ей поступают два параметра START-END (к примеру 10-100, 100-1000, 500-5000 ...) эти параметры могут быть любыми целыми числами. При каждом следующем вызове на выходе получаем промежуточное значение, тоже целое число которое больше предыдущего на некую величину (на картинке красная). Можно ли на основании приведённых таблиц понять каким образом (по какой функции) вычисляется эта дельта. Исходников нет. Дизассеблировать нет возможности. Нужно написать что то своё что будет работать также, ну или очень похоже. Пока только вижу что первое число равно примерно половине STARTа и дельта вдвое меньше него. А дальше ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 18 12 ноября, 2012 Опубликовано 12 ноября, 2012 · Жалоба Может быть, это алгоритм Брезенхема? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
arttab 0 13 ноября, 2012 Опубликовано 13 ноября, 2012 · Жалоба муторно, но можно из прошивки выковырять. приходилось ковырять прошивки из-за отсутствия исходников и документации на протоколы Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Snaky 0 13 ноября, 2012 Опубликовано 13 ноября, 2012 · Жалоба Имя функции ничего не подсказывает? Что будет если задать диапазон отличный от декадного как у вас? 1-2, 1-1000, 10-20 например Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ILYAUL 0 13 ноября, 2012 Опубликовано 13 ноября, 2012 · Жалоба Из таблицы как-то так видно , что если из 6-4=2 Из 9-6=3 из 11-9=2 ... из 423-396=27 ну и так далее.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Snaky 0 13 ноября, 2012 Опубликовано 13 ноября, 2012 · Жалоба Из таблицы как-то так видно , что если из 6-4=2 Из 9-6=3 из 11-9=2 ... из 423-396=27 ну и так далее.... Так автор именно так и вычислил красные цифры, если вы не поняли :> Более интересен вопрос как функция выбирает первое значение и количество шагов до максимума. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ILYAUL 0 13 ноября, 2012 Опубликовано 13 ноября, 2012 · Жалоба если вы не поняли :> Да не врубился, утро .... как функция выбирает первое значение и количество шагов до максимума ей поступают два параметра START-END..... Очень похоже , что задается диапазон каждом следующем вызове на выходе получаем промежуточное значение... которое больше предыдущего.... Получается , что значения могут только расти. Может график по таблице нарисовать, у меня под рукой миллимитровки нет.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Snaky 0 13 ноября, 2012 Опубликовано 13 ноября, 2012 · Жалоба Получается , что значения могут только расти. Может график по таблице нарисовать, у меня под рукой миллимитровки нет.. ну да, растут, от начала диапазона до конца. Практически с постоянным приращением. Как тут заметили, смахивает на Брезенхэма. Гораздо любопытнее как определяется первая точка ИЛИ количество шагов. Почему чтобы пройти от 10 до 100 надо 34 шага, а от 500 до 5000 - 49? А миллиметровку заменил Excel уже с конца прошлого века примерно ;> Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ILYAUL 0 13 ноября, 2012 Опубликовано 13 ноября, 2012 · Жалоба ИЛИ количество шагов так может оно и задаётся диапазоном т.е изначально известно А миллиметровку заменил Excel уже с конца прошлого века примерно ;> Не люблю я его с детства Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flexz 0 13 ноября, 2012 Опубликовано 13 ноября, 2012 · Жалоба Додумывать - какой же там внутри алгоритм, есть дело неблагодарное. Два варианта - таки дизассемблировать, либо построить аппроксимацию. Для аппроксимации стоит построить несколько графиков - число шагов от диапазона, число шагов от первого-последнего аргумента (если с последним аргументом более-менее ясно - это конец диапазона, то с первым непонятно - он не является началом диапазона), ну и собсетвнно графики значений. PS и это не Брезенхем, во-первых рост нелинейный, во-вторых последняя дельта выбивается из ряда, Брезенхем такого себе не позволяет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Edit2007 3 13 ноября, 2012 Опубликовано 13 ноября, 2012 · Жалоба последняя дельта выбивается из ряда Это может быть из-за того, что бы не выйти за диапазон при очередном приращении. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zombi 0 13 ноября, 2012 Опубликовано 13 ноября, 2012 · Жалоба Еще заметил что нету ни одной дельты с нулевым значением в последнем разряде. (после 29 может быть 28,31 но не 30; 99 - 101; 109 -111). Видать хотят что бы младший разряд каждого следующего значения обязательно менялся. По моему дельта с каждым шагом увеличивается на некую не целую константу и округляется до целого перед сложением. Величина начального значения вполне может по таблице выбираться. Параметр START может быть любым целым числом но в реальном изделии их не так уж и много. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться