![]() |
[quote=Оля П;44261262]Возможно, чего-то не понимаю.[/quote] А ты поняла, что за формула МинЦена=75+7*х+?(х%2=0,?(х>57,3,1),?(х>44,2,0)); Что за цифры 75, и 7? Для чего и зачем х%2 , можешь объяснить этот алгоритм ? |
[quote=Ирли Бёрд;44260549]когда продавать алкоголь дороже стало в убыток[/quote] На редиске объясняю. Например, на рынке продавцы договорились продавать редиску по цене не ниже 50р за пучок. Все себе стоят и торгуют по 50Р, а один маленький, но очень гордый, продавец выставил цену 60р. Все хорошо распродались, а наш гордый продавец продал всего один пучок какому-то сумасшедшему олигарху, который цену не спрашивает, и даже сдачу не берет. День простоял, а всей выручки не хватило и место на рынке оплатить. Вот тебе пример, когда дороже продавать себе в убыток. Рынок, панимаш-ли. |
[quote=Шухер;44261379] Все себе стоят и торгуют по 50Р, а один маленький, но очень гордый, продавец выставил цену 60р. [/quote] Блин. Так вот же ж Я то наивно думала, что это старый-престарый бородатый-пребородатый анекдот. Но Шухер его умудрился превратить в реалии. [em]"Идёт мужчина по Привозу. Видит, продают семечки. У одного торговца цена - 10 копеек, у другого - 10 копеек. Отдельно сидит еврей и торгует семечками по 20 копеек за стакан. - Товарищ, почему вы продаёте семечки по двадцать копеек, а другие - по десять? - Вы что, сами не понимаете, что двадцать копеек таки больше, чем десять?"[/em] (с) |
[quote=USSR;44261302] я бы все таки подуиал именно а сторону табличного хранения данных[/quote] Зачем какие-то таблицы плодить, если все замечательно вычисляется по формуле? Полностью исключает ошибки, которые могут закрасться при составлении таблиц, ибо их нет вообще. Формула, сссЭр ! :)) Раньше, когда мнения расходились, спрашивали - "ты с какова городу?" :) Сейчас можно обновить мем : Ты по какому учебнику учился? :))) |
Дело хозяйское. У всех свои предпочтения |
Табличный способ универсален, легко меняются данные и очень нагляден |
[quote=USSR;44260149]зачем вычислять в точках, в которых итак все известно ?[/quote] Спорим тут за рыбу-мясо. Этих известных точек может быть достаточно много, что захочется придумать формулу, чтобы не заполнять таблицу в ручную. |
Чем больше точек, тем сложнее решить задачу аппроксимации. А там еще не дай бог вступит в дело такая вещь, как "плохая обусловленность" системы линейных уравнений со всеми своими красивыми последствиями. Я просто В ПРИНЦИПЕ не вижу необходимости параметризовывать этот дискретный набор данных, если использоваться будет только он. Аппроксимируют для вычислений в промежуточных точках, интерполируют для предсказания в отсутствующих точках. А искать функцию, чтобы вычислить уже имеющееся значение в имеющейся точке .. ну нравится, вычисляй. Дело вкуса каждого. Благо сейчас функция относительно некривая ) |
а заполнять вручную все равно придется, хотя бы для того чтобы получить формулу. |
[quote=USSR;44262240]Я просто В ПРИНЦИПЕ не вижу необходимости параметризовывать дискретный набор данных[/quote] Позволь, немножко расскажу тебе про "В ПРИНЦИПЕ" :) Когда я только закончила институт, то попала по распределению в одно интересное тульское КБ. Там как раз разрабатывали одну не менее интересную штучку, стоящую ныне на вооружении под названием "Зоопарк-2". И есть там во внутренностях этого зоопарка один интересный такой вычислитель. Не суть важно, что он вычисляет, но в мою бытность там в ПЗУ (на той элементной базе) на момент сдачи комплекса военприемке оставалось свободными всего 22 байта. Начальник мой, Марк Исаакович, как только не изгалялся, чтобы впихнуть программку для этого спецвычислителя в ограниченный объем ПЗУ. И ведь умудрился. А меня при этом знаешь как в мой код на ассемблере тыкал носом. До сих пор нос болит. Вот он бы выразился про "В ПРИНЦИПЕ". Это сейчас мегабайт туда, мегабайт сюда - фигня вопрос. Пару гиг на диске вообще мелочь. Разбаловались. Особенно 1С-ники. А так то между запихнуть в ПЗУ массив данных или коротенькую формулу - В ПРИНЦИПЕ разница немножко есть :) Поэтому сабж (под знаком OFF, напомню) вполне себе имеет право на существование. Не для решения какой-то конкретной сиюминутной задачки по 1С, а именно как OFF. Поэтому не нравится - просто не открывай подобные ветки, промаркированные "OFF", и всего-то. Для разработки на 1С это никак не повлияет. это же оффтопик. У волшебника вон "[em]страну 404[/em]" обсуждают в оффтопиках, а тут Бронштенйа с Семендяевым и Корна с Корн. Кстати, у меня Г. и Т. Корн за 3 руб. 89 коп., год 1973, а у тебя год 1978 и цена уже 4 руб., так что можно сделать некий предположительный вывод, что и в 70-х годах инфляция была, на 11 копеек за пять лет справочник подорожал. :) |
130-Блондинка в шок > у меня 1977, 3-70: [img]https://pp.userapi.com/c638822/v638822416/4787f/15V-5Z5WcMw.jpg[/img] |
Если не решать подобные задачи, не лазить по справочникам и учебникам, мозг засыпает, просто теряет способность думать. Мозг, как бы, окутывает лень и чем дальше находишься в ленной спячке, тем тяжелее выбираться из этого состояния. Я вот очень благодарен всем участникам этой дискуссии, и лично товарищам Зеленому, Гене и Блондинке в шок с этой аппроксимацией. У меня сейчас такой прилив энергии, какая-то Радость появилась, получаю удовольствие. Кому-то нравится сканворды решать, а кому-то арифметика нравится. |
Кажись придумал, как погрешность побороть до нуля для 2У и остальных рядов. 22 байта в нашем ПЗУ еще есть свободных, попробуем впихнуть код. :) |
(130)Длинный рассказ) я видел много всяких вычислителей, и сам делал решения с помощью только целочисленной арифметики, только сложение и вычитание и умножение-деление на 2 путем сдвигов регистра. Поэтому знаю, что такое быстродействие и память тогда и сейчас. Ну нравится Вам, аппроксимируйте, завтра изменится пара значений в таблице, начнете снова аппроксимировать, лишь только для того, чтобы получить те же самые точки по которым аппроксимировали. На этот случай я тоже могу вспомнить про кота, которому делать нечего. Ну если настаиваете, что не в ПРИНЦИПЕ,пусть будет не в принципе, пусть аппроксимация будет единственным верным решением )) А Корны были всякие, у меня 4 издание, 821 стр. |
(133)Можно еще долго придумывать разное и бороть, в этой области занятий хватит ) Как проснулся, сразу на борьбу, позавтракал и опять бороться ) Считаться это все будет на ДВК-2 или на Спектруме ?) |
USSR в принципе не желает порешать математическую задачку. Придумывает всякие отговорки, чтобы ничего не делать. Настоящий программист, матёрый :) |
Не получается выровнять для ряда 2У без "если". Очень уж жесткие рамки, нет возможности для маневра. Ну и ладно. Лучше другую задачку уже решать. С этой успешно справились. Блондинка в шок нашла самое интересное решение. Даже USSR, зная и покруче решения, не смог применить их на практике, и продемонстрировать их крутость. Всем огромное спасибо, было приятно пообщаться. Появится еще похожая задачка, непременно сразу к вам :) |
(136)Я предложил решение исходной задачи, но без аппроксимации, поэтому я задачу решил. Аппроксимировать я нигде не обещал. Решений несколько: Массив, Справочник, РегистрСведений, выбирай не хочу. А строить функцию по точкам, чтобы потом опять получить эти же точке, ну это вне моих вкусовых предпочтений. Иногда Пискунов просто лишний ) У нас был препод по вышке, со странностями, но он обожао математику и его за это уважали. Так у него за правильное, ер длинное решение можно быдо на экзамене элементарно получить пару. Он просто смотрел, что это полторы страницы, а не 5 строчек и банан в зачетку. |
[quote=USSR;44265244]Он просто смотрел, что это полторы страницы[/quote] У тебя и получилось на полторы страницы. Сам массив, а потом поиск по нему и извлечение инфы. А у всех пара строк кода из коротеньких формул, которые легко читаются. Хорошо, что 1С-никам не надо описывать векторную графику, а то бы можно было себе представить размерчик таких массивов. Я так считаю, если есть хоть какая-то малая возможность воспользоваться вычислениями, надо ими воспользоваться, максимально избегать наваливания кучи справочников и ненужных лишних массивов. |
(139)не буду спорить, каждому свое. Вычисления разные бывают. Какой тут массив 200 точек, говорить то смешно про размер. Будет векторная графика, будет другой разговор, зачем все в кучу валить. Здесь была другая задача. Останемся при своем. |
Предлагаю всем недоспорившим померяться силами в этой ветке: [url]http://forums.kuban.ru/f1024/kak_v_eksele_realizovat-_takoj_algoritm-8333596.html[/url] |
141-Ткачик > По накатанной :) x y 1 367 2 439 3 517 4 613 5 721 6 823 7 931 Уравнение линейной регрессии имеет вид у=95*х+ 250 Спускаем вниз на 20 пунктов нашу прямую, чтобы все заданные известные точки оказались выше расчетных, и потом при вычислениях округляем вверх. у = 95*х +230 --> вычисляем х и округляем вверх до целого. х=(у-230)/95 Нашли ближайшее значение Х, теперь сравниваем У(х) с У_табличным(х). Если У_табл меньше тогда спускаемся Х=х-1. Х- порядковый номер в заданном ряду значений У. Можно написать макрос, а можно и в ячейке формулу составить по условию. Еще надо по диапазону ограниечение на Мин, чтобы не выскочить. В данном примере Х не может быть больше 7. [img]https://img-fotki.yandex.ru/get/170815/17660635.2/0_193f41_d66cae30_orig.png[/img] |
[quote=Шухер;44271700]Если У_табл меньше тогда спускаемся Х=х-1[/quote] Это я тут наврал, наоборот надо. Подумал, лучше вообще не округлять вверх. Сразу проверить округление вниз до целого. Если табличное значение окажется меньше, добавляем х = цел(х)+1 Пример, вычислим ближайший больший У_табл для у= 437: х=(437-230)/95 = 2,18 х=цел(2,18) = 2 У_табл(2) = 439 х= ?(У_табл >у , х, х+1); 439 > 437 х=2 |
(142Б143)И воткнешь ты эту хрень заказчику, будет она исправно считать какое-то время, тут ты уедешь в Турцию или в Крым попу греть, и как обычно бывает, Заказчик решит поменять пару-другую точек. И не работает потом и кровью полученная функция, и заново надо ее получать. И так всякий раз. Называется все это - одноразовое решение. |
144-USSR > В целом я с тобой согласен, универсальностью метод не блещет. Заточен под конкретные данные. В данном конкретном примере я просто обкатываю понравившийся мне метод. Не могу согласиться, что везде надо именно таблицы использовать. Если в них менять как попало данные, и твой универсальный метод тоже запросто в тупик можно загнать. Данные должны быть некоторым образом упорядочены и подчиняться некоторой логике. Этот спор ни о чем. Вместо спора и порожней болтовни, помоги человеку решить его задачу в Ексель. |
[quote=USSR;44272168] и как обычно бывает, Заказчик решит поменять пару-другую точек[/quote] хи.. 1С-ники порой такие предсказуемые. Все зашорены Заказчиками и Отпусками в Крыму :))) Вообще то если это для 1С, то такие элементарные моменты (вариации исходных данных) обычно оговариваются еще на момент постановки ТЗ. Возможно (только возможно) данные в таблице будут меняться ежедневно. И тогда решение Шухера не годится. А возможно (опять же - только возможно) - это просто задачка из учебника, и тогда решение Шухера очень даже вполне. ====================================================== [quote=USSR;44272168]Называется все это - одноразовое решение.[/quote] Да. И что? Не вижу ничего предосудительного в [b]таком [/b]решении задачки из учебника. Ты же не будешь говорить, что учебники перепечатываются ежемесячно. :) зы: судя по другим темам автора, он ни разу не программист. И уж не 1С-ник точно. А вот студент - вполне может быть.. И для него такое [em]одноразовое [/em]решение - весьма неплохо. По крайней мере, будет что-то оригинальное в сравнении с общей массой других студентов, которые будут тупо решать перебором таблиц. Особенно, если в методичке не оговорена вариативность исходных данных. И, я надеюсь, у его преподавателя нет зашоренности насчет Заказчика и Турции. |
А если необходимо предусмотреть, что данные ряда могут меняться, конечно так чтобы ошибка аппроксимации не зашкаливала, и данные соответствовали с допустимой погрешностью прямой у=ах+в. Тогда можно легко автоматизировать пересчет (а,в) по правилу Крамера, по известным уже формулам. И можно спокойно ехать в Турцию. |
(145)Из какого учебника?) Было же сказано вроде, что это прикладная задача. цифры - цены на алкоголь. Предсказуемость состоит не в том, чтобы бы быть озабоченным заказчиком, а в том, что делаются некачественные решения, сделанные на тоненького и целиком зависящие от программиста. Немало видел конфигураций, где и ищется по коду или по наименованию товара, где скидки программируются с конкретными числами в формулах. И ведь работало, и даже правильно. Если речь лишь об аппроксимации, то ради бога, всякое решение имеет право быть. Если речь об исходной задаче получения цен, то аппроксимация один из возможных подходов к решению, на мой взгляд, крайне неудачный. И не надо перебирать никаких таблиц. Это же не решение, если строится некая зависимость, а потом в точках округляется вверх-вниз. В чем ценность этого решения ? Как упражнение - ну разве что. Как прикладное решение - ну извините. А если уж строится зависимость, то ее тоже надо строить согласно математической науке. Я честно говоря не вьехал, а в чем состоят вычислительные ограничения задачи, почему надо короткий код ? Это где-то на орбите будет вычисляться ?) |
(147)а с правилом Крамера все красиво только на учебных примерах второго-третьего порядка. Задачи аппроксимации как правило плохо обусловлены (определитель бывает близок к нулю) и можно нахватать огромные погрешности. С помощью хранения этого ряда в справочнике я решил бы эту задачу максимум за полчаса, причем данные хранились бы наглядно, их можно было бы распечатать, подписать и тд. а не манипулировать какой-то непонятной формулой, неизвестно откуда взятой. Тем более, что для получения этой формулы все равно надо заносить данные в Excel или Маткад (там тоже можно ошибиться), но об этом как-то умалчивается. |
но вообще то, если это задание из методички для студентов именно на знание Ексель, а не на алгоритмы, то я бы в так сформулированном задании в (141) вообще бы использовала специфические функции ВПР() или даже для несортированного списка ПРОСМОТР(), ИНДЕКС(), ПОИСКПОЗ() Понятно, что в (141) задание именно про Ексель (не про 1С). Непонятно, на что упор - на "[em]нестандартный[/em]" алгоритм или на знание типовых функций Екселя, в частности, той же функции ВПР() Если на нестандартный алгоритм - то решение Шухера для преподавателя будет явно нестандартное :) Если на тупое знание Екселя- то смотри вышеперечисленные функции. Если на универсальность и предполагаемый отпуск в Анталии - то, естественно, решение через перебор таблиц. Особенно если наряду с отпуском предположить, что табличные данные могут быть произвольными и ряд через линейное уравнение просто не сможет решаться в принципе, вдруг там будет "ряд ступеньками", причем абсолютно произвольными ступеньками. |
148-USSR >[quote=USSR;44272996]ыло же сказано вроде, что это прикладная задача. цифры - цены на алкоголь. [/quote] Да ты что? Ну-ка ну-ка ткни меня носом в (141) - где это сказано? Где-где? Не вижу.. В упор. зы: мда. 1С-ник, "ясновидящий про Турцию и Заказчика", не удосужился прочитать задание в (141), которое (задание) вообще опубликовано даже не в разделе форума 1С, а совершенно в другом разделе ("Разработка программ") да и опубликовано человеком, к 1С не имеющим никакого отношения. пичалька.. как же ж ты с Закачиками то договариваешься? При такой то невнимательности к заданию.. |
В общем, [b]конкретно [/b]для (141) - в Ексель юзается функция ВПР(). Код копипастить (даже не писать) лень, ибо Яндекс дает 20 млн результатов поиска. Все. |
152 + хотя разумеется, как сказано выше, можно использовать и другие функции - ИНДЕКС(ПОИСКПОЗ()) ну и разумеется должны предусмотреть сравнение на точное/ неточное, тут использовать функцию ЕСЛИОШИБКА() короче алгоритм типа такого 1. вариант с ВПР() и используется "Х", "У" Сначала через ВПР() ищем на точное совпадение У. Если нашли - то вот они и "Х" и "У" :) ЕСЛИОШИБКА() - то делаем поиск на неточное сравнение (получаем ближайшее снизу) и соответственно Х=Х+1, а от него уже получаем соответствующий У. - вариант с ПОИСКПОЗ() (и даже без "Х") опять же сначала поиск на точное сравнение ИНДЕКС(ПОИСКПОЗ()) нашли - молодцы, а - ЕСЛИОШИБКА(), то поиск на неточное, получаем ближайший снизу индекс и увеличиваем его на 1. ИНДЕКС(ПОИСКПОЗ()+1) |
(150)ну уж извините, коли я не разобрался в политических тонкостях техзадания. Я понял так как понял. Мои заказчики тут совершенно непричем, с ними общаться никого на помощь не зову, сам управляюсь. Недовольных заказчиков тоже не наблюдал. Поэтому не надо все в одну "женскую" кучку сваливать. Надо всего лишь четко формулировать задачу (чего я добивался с самого начала), тогда можно обсуждать и решения. Если это учебная задача, то я хотел бы видеть дословно как она формулируется. Я очень сомневаюсь, что именно так как нам ее преподали. (Шухер) в чем проблема без всяких ломаний и стеснений выложить задачу в исходном виде, чтобы не вводить в заблуждение прогрессивную и непрогрессивную общественности? Если ты учишься, то что в этом стыдного? Это наоборот почетно и правильно. Если это действительно торговля алкоголем, то тоже не вижу ничего зазорного. |
154-USSR >В (141) [b][em]другая [/em][/b]задача. Шухер тут ни при чем. Эту задачу выложил сторонний человек в другом разделе форума, а предложил сюда в эту ветку [b]Ткачик[/b]. Постановка этой второй задачи к Шухеру не имеет никакого отношения. :) Задание к этой второй задачке сформулировано, по моему, однозначно в части среды разработки (четко указано - Ексель) да и само по себе весьма специфично в части требований к знанию конкретных функций Екселя, и поэтому отсюда я сделала предположение (см. внимательно в (146) -"[em]возможно[/em]" sic!) что это чисто учебная задача. Потому что спрашивать на форуме про "[em]алгоритмы в Ексель[/em]" для реальных практических задач - хм... ну как то оно.. хм... А вот для студента такой вопрос - естественен. Причем даже смею предположить, для студента не "[em]программистских[/em] специальностей", а какого-нибудь финансиста-экономиста-бухгалтера. Причем возможно даже не ВУЗА, а техникума. Читают же им какой-нибудь [em]курс, связанный с IT[/em]. :) ======== А это меня развеселило. Без обид. Просто юморно выглядит. ========================== [quote=USSR;44273269]Поэтому не надо все в одну "женскую" кучку сваливать... [[em]а ниже[/em]] уж извините, коли я не разобрался в политических тонкостях техзадания. Я понял так как понял[/quote] Ну я то сразу четко отделила эту задачу от задачи Шухера, поэтому насчет кучки не ко мне :) и поэтому не поняла, почему ты так самокритично называешь свою кучку "[em]женская[/em]". :)))))) |
вы же вроде собирались угомониться и разойтись миром? |
| Текущее время: 13:15. Часовой пояс GMT +3. |