|   |   | 
| 
 | OFF: Задачка по суммам геометрических прогрессий. | ☑ | ||
|---|---|---|---|---|
| 0
    
        RetardedToBoot 03.06.22✎ 05:39 | 
        В коде ниже описаны три варианта одного и того же усреднения по геометрической прогрессии.
 И в третьем варианте ошибочка, и у меня мозгов не хватает ее догнать. Может кто осилит? n = 30; // количество усреднения, больше единицы. q = n / (n - 1); // знаменатель возр.геом.прогр. s1 = 0; w1 = 0; s2 = 0; w2 = 0; m2 = 1; s3 = 0; w3 = 0; v = 3; для шаг = 1 по 100 Цикл v = (v + 3) % 31; // тестовая последовательность от которой считается среднее //***************************************** // ВАРИАНТ 1, по принципу убывающей геом.прогр. s1 = s1 * (1 - 1/n) + v; // суммир.значений взвешенных по члену геом.прогр. w1 = w1 * (1 - 1/n) + 1; // сумма геом.прогресии avg1 = s1 / w1; //***************************************** // ВАРИАТ 2, по возрастающей геом.прогр. Если w2 > 1000 Тогда // нормализация, когда делитель стал слишк.больш. m2 = m2 / w2; s2 = s2 / w2; w2 = 1; КонецЕсли; m2 = m2 * q; // член возрастающей геом.прогрессии. w2 = w2 + m2; // сумма геометрической прогрессии s2 = s2 + v * m2; // суммир.значений взвешенных по члену геом.прогр. avg2 = s2 / w2; //***************************************** // ВАРИАНТ 3, по возр.геом.прогр. без сохранения элемента прогрессии Если w3 > 100 Тогда // нормализация, когда делитель стал слишк.больш. s3 = s3 / w3; // и вот здесь у меня мозг сломался. Для такого варианта это не работает, w3 = 1; // и возникает расхождение когда происходит это условие. КонецЕсли; // член возрастающей геом.прогрессии., вычисляемый из суммы геом.прогр. m3 = w3 * (q - 1) + q; w3 = w3 + m3; // сумма геометрической прогрессии s3 = s3 + v * m3; // суммир.значений взвешенных по члену геом.прогр. avg3 = s3 / w3; //***************************************** сообщить("" + шаг + ", среднее значение: " + формат(avg1, "ЧДЦ=3; ЧГ=0") + ", " + формат(avg2, "ЧДЦ=3; ЧГ=0") + ", " + формат(avg3, "ЧДЦ=3; ЧГ=0") + ", вес3 " + окр(w3, 3)); КонецЦикла; | |||
| 1
    
        1ctube 03.06.22✎ 06:05 | 
        Что это вообще такое     | |||
| 2
    
        RetardedToBoot 03.06.22✎ 06:51 | 
        (1) расчет средних арифметических для бесконечных рядов. Использоваться может там, где нужен расчет средних для рядов - прогнозирование, планирование, и т.д. И в частности, варианты 2 и 3 это для взаимоисключающих значений - если нужно усреднять несколько рядов по одному делителю, чтобы каждый из рядов не добавлять каждый раз.     | |||
| 3
    
        Bigbro 03.06.22✎ 07:20 | 
        куча странных и неправильных формул
 без обозначений, дано, условий. кто вас так учил? | |||
| 4
    
        RetardedToBoot 03.06.22✎ 08:01 | 
        (3) научи как правильно. Если не вы, то кому еще? Раз говорите, что эти формулы не правильные, значит знатете какие должны быть правильными...     | |||
| 5
    
        Ненавижу 1С гуру 03.06.22✎ 08:29 | 
        (4) пишите нормально, что дано, что надо получить, как пробовали, а не смесь вот этого всего     | |||
| 6
    
        Bigbro 03.06.22✎ 08:45 | 
        (4) средняя школа 8-10 класс, учебник математики.
 не моя специализация. могу конечно поработать репетитором но откуда у вас такие деньги. | |||
| 7
    
        RetardedToBoot 03.06.22✎ 08:52 | 
        (6) да это вы отмазываетесь, просто не хотите признаваться.     | |||
| 8
    
        RetardedToBoot 03.06.22✎ 08:53 | 
        (5) Так что именно будет нормальным? Вот скажем выражение "s1 = s1 * (1 - 1/n) + v", как оно будет в "нормальном" описании? А то я понапишу, мне не сложно пару страничек, и будет опять же смесь...
 Есть эталонный вариант 1. Он работает, но в таком виде возникают заморочки в других вычислениях, которые не имеют отношения к этому описанию. Есть вариант 2, который то же работает, и результат его вычислений эквивалентен варианту 1. Но в нем используется три суммируемых переменных: член геом.прогр, сумма геом.прогр, и сама сумма значений. А хочется получить такое же, но сохранять лишь две накапливаемых суммы, а не три как в варианте 2. Что я и представил в варианте 3. Который работает до момента "Если w3 > 100 Тогда". | |||
| 9
    
        Ненавижу 1С гуру 03.06.22✎ 08:57 | 
        (8) продолжайте...     | |||
| 10
    
        RetardedToBoot 03.06.22✎ 08:58 | 
        (9) что именно?     | |||
| 11
    
        Ненавижу 1С гуру 03.06.22✎ 09:00 | 
        (10) нести поток сознания     | |||
| 12
    
        RetardedToBoot 03.06.22✎ 09:02 | 
        (11) куда нести? что нести? как это вообще носится?     | |||
| 13
    
        Выпрь 03.06.22✎ 09:16 | 
        (12) задачу собираешься по человечески формулировать, А не найдите ошибку в моем коде | |||
| 14
    
        Bigbro 03.06.22✎ 09:59 | 
        насчет "моём" крайне сомнительно.
 (7) отмазываюсь от чего? ты здоров вообще? чтобы пытаться понять бредятину какого то неизвестного автора код которого ты сюда припер не понимая в нем ничерта, при том ни ты ни тот автор не владеете математикой в объеме средней школы... перед кем мне и за что отмазываться, ало? | |||
| 15
    
        Ёпрст гуру 03.06.22✎ 10:10 | 
        (0) ошибка в 248 строке     | |||
| 16
    
        Ёпрст гуру 03.06.22✎ 10:11 | 
        И да, NIGHTHUNTER вам не родной брат ?     | |||
| 17
    
        RetardedToBoot 03.06.22✎ 10:52 | 
        (15) любопытно
 (16) я хз, он мне не говорил | |||
| 18
    
        RetardedToBoot 03.06.22✎ 14:08 | 
        (14) какой-то у вас не связанный текст, с кучей отсебятины и не понятных выводов. Словно корчевателем отписывался. Вы бы попробовали бы нейросеточками, они более связанный текст выдают.     | |||
| 19
    
        Конструктор1С 03.06.22✎ 14:25 | 
        (2) среднее арифметическое считается по элементарной формуле. А то что в (0) какая-то хрень, делающая непонятно что. Код должен быть читаемым и понятным. Не следует убивать код невеятной математикой ради невнятных целей     | |||
| 20
    
        RetardedToBoot 03.06.22✎ 14:39 | 
        (19) это если пользоваться школьными понятиями. Среднее арифметическое взвешенное:
 https://ru.wikipedia.org/wiki/Среднее_арифметическое_взвешенное Как вы предлагаете сделать эту математику более понятной? Цель - это посчитать такое среднее взвешенное по членам геометрической прогрессии. Считается для каждого шага цикла. Такой расчет используется ну очень широко в статистических расчетах, например как коэффициенты скорости обучения. В таком случае формула обычно имеет вид: newSum = preSum * (1 - alpha) + newValue * alpha; где newValue зависит от природы расчетов. А мне эта формула нужна немного вывернутая, что бы не было множителя у preSum. И тогда она приобретает вид, описанный мной в топике. | |||
| 21
    
        Конструктор1С 03.06.22✎ 15:18 | 
        (20) >>Как вы предлагаете сделать эту математику более понятной? 
 Не предлагаю делать математику более понятной. Предлагаю отказываться от математики вообще, где это возможно. Математика сама по себе непонятность. Математика в коде двойная непонятность Намедни полистал научную работу одного институтского писаки. Тема что-то вроде "графы затрат в налоговой оптимизации". Красиво, научно... и совершенно не применимо на практике. Вряд ли в природе встречаются бухгалтерии, в которых каждый второй бухгалтер высшую математику на пальцах крутит | |||
| 22
    
        ДедМорроз 03.06.22✎ 20:58 | 
        Начнем просто - среднее взвешенное требует наличия усредняемых величин - тут понятно,члены геометрической прогрессии как раз и есть эти усредняемые величины.
 И набора коэффициентов для усреднения - их мы откуда берем ? | |||
| 23
    
        RetardedToBoot 04.06.22✎ 10:01 | 
        (22) не, мне средняя членов не нужна, они как раз коэффициенты усреднения.
 Там же практически в самом верху: v = (v + 3) % 31; // тестовая последовательность от которой считается среднее Так ко всем сколь-либо значимым действиям расписаны комментарии. | |||
| 24
    
        Bigbro 06.06.22✎ 06:43 | 
        (18) нейросеточки я писал еще когда ты пешком под стол ходил видимо.
 конечно не чета нынешним но в рамках тех теорий что существовали на тот момент они своё отрабатывали. а вот тебе можно и попытаться воспользоваться результатами. раз уж своего ты родить не можешь и в чужом разобраться тоже. | |||
| 25
    
        Ненавижу 1С гуру 06.06.22✎ 07:24 | ||||
| 26
    
        RetardedToBoot 06.06.22✎ 08:12 | 
        (25) не, не угадал.     | |||
| 27
    
        RetardedToBoot 06.06.22✎ 08:25 | 
        (24) чего я не понимаю, так это зачем вы вклинились в тему, которая по вашим же словам, не ваша специализация, и теперь доказываете здесь, что самый умный, исключительно выражением свое презрения.     | |||
| 28
    
        Ненавижу 1С гуру 06.06.22✎ 08:48 | 
        (26) я не угадываю     | |||
| 29
    
        Bigbro 06.06.22✎ 08:49 | 
        (27) все по существу было высказано в (3)
 поскольку никаких вменяемых комментариев с вашей стороны не последовало - соответствующий оборот и приняла дискуссия. а не моя специализация - это про обучение недорослей азам школьной математики. но как уже говорил - я могу. если же нужна помощь потрудитесь внятно сформулировать задачу о чем вам уже все кто писал в теме сказали. | |||
| 30
    
        RetardedToBoot 06.06.22✎ 17:24 | 
        (29) боюсь что вам нужно сначала читать научиться. Иначе вам ничего не поможет. Как я написал постом выше, вы ничего кроме выдумывания всяких оскорблений не умеете.     | |||
| 31
    
        RetardedToBoot 06.06.22✎ 17:28 | 
        (28) ну извени. МНК имеет пересечения со многими вещами, например средняя это МНК без переменных. Но классическая МНК не поддерживает усреднение по членам геометрической прогрессии. Но опять же, вопрос не в решении этого случая, а в специфичном варианте описанном в топике.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |