Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
21 ноя 2024, 15:20

Промежуточная статистика викторины

Автор mixqn, 13 мар 2013, 23:00

0 Пользователей и 1 гость просматривают эту тему.

serj1C

Цитата: Slin от 18 мар 2013, 04:41
Цитата: serj1C от 17 мар 2013, 21:53
Slin, работает, т.к. ссылка - это уникальное поле и ее можно сравнивать на больше и меньше
Что сравнивать можно, это я понимаю
Но я не понимаю, почему оно нумерует :dfbbdrfb:
Потому что у нас получается декартово произведение n*n c фильтром по главной диагонали. А потом считается количество элементов.
Представите квадрат с одной диагональю, штрихуйте его по вертикали и считайте количество клеток)

Slin

skype: slin-dev

AAlexandra

Цитата: SlazZy от 18 мар 2013, 00:06хотелось бы увидеть математически обоснованный принцип решения,в таком случае. А ещё лучше - обработку :)
Ну.. у нас есть 2 суммы чисел: S1 - сумма по данным бухгалтеров. Она же получается сложением всех чисел.
И есть S2 - сумма по данным СС. Она получается при изменении одного из чисел путем перестановки цифр в соседних разрядах.
Если S1=S2 - ничего искать не надо, ошибки нет.
Если S1<>S2 - то их разница (S1-S2) - как раз и есть разница между измененным числом до и после перестановки цифр.
Зная (S1-S2) можно установить, в каком разряде допущена ошибка. Если числа различаются на 9000 - бесполезно искать ошибку в перестановке единиц и десятков. ;)
Допустим, ошибка в перестановке десятков и сотен 5-ти значного числа M, запишем его в виде "abcde". (M = a*10000 + b*1000 + c*100 + d*10 + e).
Тогда перестановка десятков и сотен дает нам число M2 = a*10000 + b*1000 + d*100 + c*10 + e.
M1-M2 = c*100 + d*10 - d*100 + c*10 = 9*(c-d)*10 = S1-S2.
Теперь понятно, что если S1-S2 не кратно 9 - то сумма СС точно не получится из бухгалтерской указанным способом, можно выдавать ответ.
В общем случае, S1-S2 = 9*(c-d)*10^(РазрядОшибки-1).
Т.е. если РазрядОшибки=0, то нужно переставлять десятки с единицами.
РазрядОшибки=1 - сотни с десятками и т.д.
Все, осталось пробежаться по всем числам и проверить в каждом одну единственную перестановку.

SlazZy

Цитата: AAlexandra от 18 мар 2013, 08:41
Цитата: SlazZy от 18 мар 2013, 00:06хотелось бы увидеть математически обоснованный принцип решения,в таком случае. А ещё лучше - обработку :)
Ну.. у нас есть 2 суммы чисел: S1 - сумма по данным бухгалтеров. Она же получается сложением всех чисел.
...
Спасибо, в общем сначала надо было подумать над решением задачи с точки зрения математике, всё не так сложно оказывается )

Boulala

Цитата: AAlexandra от 18 мар 2013, 08:41Зная (S1-S2) можно установить, в каком разряде допущена ошибка.
Супер! :lol: А я не подумал об этом, просто перебрал :wacko:


Slin

skype: slin-dev

Теги:

Похожие темы (1)

Рейтинг@Mail.ru

Поиск