Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   У кого есть время - предлагаю интересную задачу для программы (http://forums.kuban.ru/f1040/u_kogo_est-_vremya_-_predlagayu_interesnuyu_zadachu_dlya_programmy-7652004.html)

Гена 07.04.2016 21:24

У кого есть время - предлагаю интересную задачу для программы
 
Как известно НДФЛ считается в целых рублях. На бухфоруме рассматривался обратный расчёт. Задана сумма на руки нетто Н в рублях и копейках. Надо найти сумму Б брутто-начисление. Обнаружилось существование парных дублей, когда прибавка на 1 рубль к Б даёт ту же величину на руки Н за счёт того, что и НДФЛ увеличивается при этом на этот же рубль.

Пример:
Сумма Н = 37004.62 может быть получена как с Б1 = 42533.62, так и с Б2 = 42534.62

Ручной перебор нетто Н в разных интервалах даёт у одних частоту появления дублей в 13%, у других - 14.94%

Я думаю программистам легко набросать перебор на любом заданном интервале по прибавке к нетто Н по копейке - как часто появляются дубли по брутто Б (считаем эту пару за единицу)?

На всякий случай напомню, что дробные части (копейки) Н и Б всегда совпадают, т.к. НДФЛ в целых рублях, а то просто жахните 0.87 в знаменатель, а это неверно.

nordbox 07.04.2016 21:27

Ну дык это вроде и ежу понятно что 0,87 не верно

DeiMos 07.04.2016 21:33

А вопрос-то какой?

Вот лично мне наши финансисты именно в таком виде предоставляют ТЗ.

И я потом трачу месяц, чтобы понять, ЗАЧЕМ и ДЛЯ ЧЕГО они мне этот вопрос задали.

Гена 07.04.2016 21:34

Я думал вопрос понятен. Так какая же всё-таки частота появления дублей? Одинакова ли она на разных длинных интервалах?

nordbox 07.04.2016 21:41

Гена, я частоту не вычислял, я не совсем понял задачу твою,
у меня как то была задача немного друга, а может и такая же ))
Ну суть такова, Есть цена товара Розничная
Тип цен: Расчитывается и хранится
известен процент накрутки 70% на Закупочную
Задача: найти Закупочную
Я это сделал методом тупого подбора процентов

DeiMos 07.04.2016 21:48

Я всегда сразу с подозрением отношусь к задачам, в которых написано : "Думаю, программистам не составит труда рассчитать...".

Сразу предполагаю, что мою работу программиста - не оплатят.

nordbox 07.04.2016 21:51

DeiMos, ну тут сейчас речь не об этом

DeiMos 07.04.2016 21:51

3-Гена > Готовите, Геннадий Янович, статью на Нобелевскую Премию?

Гена 07.04.2016 21:56

Надо составить цикл перебора Б от Б1 до Б2 с интервалом в одну копейку.
Формула: Н = Б - Окр(Б*0.13)
Проверяем: Н' = (Б+1) - Окр((Б+1)*0.13)
Если Н = Н', то имеем дубль. Один дубль для этого Б и Б+1
КонецЦикла

Выводим количество дублей, а лучше сразу частоту

MarySue 07.04.2016 21:59

а что, Гена до сих пор не научился ваять скрипты в Excel ?

nordbox 07.04.2016 21:59

Я свою задачу решил вот так
[img]http://i.imgur.com/KG4uZNT.jpg[/img]

101 08.04.2016 08:46

(9) в эксель - макросы ваащето ))

Гена 08.04.2016 19:10

Ладно, раз все заняты и программку лень делать, придётся решать задачку теоретически.

Есть такое понятие как мощность числового множества (количество элементов множества). Очевидно, что мощность нашего денежного множества |RUR| (рубли, копейки) равна мощности множества натуральных чисел |N| (если элемент выразить в копейках). Отсюда и работать с денежным множеством можно по всем правилам натурального множества: складывать, умножать на число и т.д.

Итак, имеем натуральное денежное множество |RUR|. Определим в нём подмножество дублей |D| по следующему условию:
D - ОКР(D*0.13) = (D+1) - ОКР((D+1)*0.13) ………………….. (1)
т.е. суммы на руки нетто одинаковы при увеличении брутто-начисления на 1 рубль.
Или
ОКР((D*0.13 + 0.13) - ОКР(D*0.13) = 1
При прибавлении 13 копеек происходит увеличение округления на рубль. Это верно для копеек числа (D*0.13) в интервале от 37 до 49, т.е. для 13 из 100.

Следовательно мощность дублей |D| равна 0.13 мощности |RUR|
|D:RUR| = 0.13 * |RUR| ……………………………….. (2)

Теперь возьмём любой конечный интервал денежного множества брутто-начисления |RUR| и сопоставим ему такое же натуральное множество нетто сумм на руки |P|. В 13% всех элементов для двух элементов |RUR| сопоставляется один элемент |P|, т.е.
|D:P| = |D:RUR| / (1 – 0.13) …………………………… (3)

Окончательно, подставляя (2) в (3), получаем:
|D:P| = |RUR|*0.13 / (1 – 0.13) …………………….. (4)

В общем виде частота появления дублей на множестве сумм на руки:
[b]ЧастотаДублей = Ставка/(1–Ставка)[/b] …………………….. (5)

Для НДФЛ=13% частота появления дублей действительно равна 0.13/0.87 = 14.94%, т.е. около 15% сумм на руки будут иметь две грязные брутто-суммы начислений, различающихся на рубль.

Из (5) видно, что если бы ставка НДФЛ была 50%, то частота появления дублей равна 0.5/(1-0.5) = 100%, т.е. каждая сумма на руки имела бы всегда своего дубля брутто-начисления )

Ну а при Ставка > 0.5 должны появиться триплы )

DeiMos 09.04.2016 00:17

12-Гена > Мля, Гена... Не грузи...

Однажды к Великому Биржевому Трейдеру пришли ученики...

И воспрошали:
- Скажите, Учитель, вот сейчас стохастик 15 пересек уровень дивергенции.
Также показатель Фибоначчи показывает нам, что перекупленность.

Также по макди вырисовывается нам разворотный крест.
Кроме того, вышли прогнозы по запасам нефти в США...

Учитель открыл глаза...
И сказал им: Идите вы все [filolog]нах[/filolog]...
Я и слов-то таких не знаю...

sayus 11.04.2016 11:16

DeiMos, из писателей, u're the best of the bests :)))

sayus 11.04.2016 11:21

а если серьёзно и всем: «и программку лень делать» [07.04.2016 - 21:24], — как обычно ‹…› всё уже написано до нас; хочется предложить автору: рассчитать КПД внедрения такой «программки» на основе статистики любой реально действующей ИБ.. м-да, блин; так ржать, меня уже давно никто не возбуждал; спасибо, генадий... от души ;)

Гена 11.04.2016 13:07

Просто если существуют дубли в таком количестве, то надо менять методику расчёта брутто-начисления от обратного, т.е. от нетто-суммы на руки. Недостаточно один раз прогнать проверочный прямой расчёт и добавить/убавить на рубль искомую сумму при расхождении, т.к. можно нарваться в 15% случаев на дубль, когда корректировка не сработает.


Текущее время: 13:33. Часовой пояс GMT +3.