Здравствуйте, Real 3L0, Вы писали:
V>Как им поступить ? R3>SQL Server им поможет
Q: Тpебyется: за ОДИH SQL-запpос найти 3 наиболее оплачиваемых сотpyдника. Если комy интеpесно, может попpобyете?
A:Диpектоp, его зам и главбyх. Пpи чем тyт СКЛ?
Здравствуйте, Vitko, Вы писали:
V>Привет всем. V>В добавок к задачке о бассейне хочу задать следующую задачку .
V>3 сотрудника хотят узнать среднее арифметическое своих зарплат, но каждый не хочет выдавать размер своей зарплаты.
Очевидно, так:
1-й: складывает свою зряплату с произвольным числом.
2-й: складывает число, полученное на шаге 1, со своей зряплатой
3-й: то-же, что и второй.
1-й: отнимает от итогового числа то самое, произвольно выбранное, и делит на 3.
Здравствуйте, orangy, Вы писали:
O>Здравствуйте, Flamer, Вы писали:
[]
O>А если он врёт? 2ой и 3ий достоверно-то не узнают...
Кстати, вдогонку: чтобы избежать "вранья" — процедуру повторяем 3 раза, при этом произвольное число на первом шаге задумывают поочередно. Если итоговые три цифры сошлись — никто не врал и никто не раскрыл своей зарплаты. И средняя цифра достоверна
Здравствуйте, Vitko, Вы писали:
V>Привет всем. V>В добавок к задачке о бассейне хочу задать следующую задачку .
V>3 сотрудника хотят узнать среднее арифметическое своих зарплат, но каждый не хочет выдавать размер своей зарплаты. V>Как им поступить ? V>Удачи.
А еще программисты
Надо программку написать, всем троим проверифицировать код, в конце поставить форматирование винта на котором она работает, потом поочередно-приватно ввести данные, и в конце посмотреть результат.
Здравствуйте, Vitko, Вы писали:
V>Привет всем. V>В добавок к задачке о бассейне хочу задать следующую задачку .
V>3 сотрудника хотят узнать среднее арифметическое своих зарплат, но каждый не хочет выдавать размер своей зарплаты. V>Как им поступить ? V>Удачи.
Пойти к финдиректору или бухгалтеру
Здравствуйте, Flamer, Вы писали:
V>>3 сотрудника хотят узнать среднее арифметическое своих зарплат, но каждый не хочет выдавать размер своей зарплаты. F>Очевидно, так: F>1-й: складывает свою зряплату с произвольным числом. F>2-й: складывает число, полученное на шаге 1, со своей зряплатой F>3-й: то-же, что и второй. F>1-й: отнимает от итогового числа то самое, произвольно выбранное, и делит на 3.
А если он врёт? 2ой и 3ий достоверно-то не узнают...
Здравствуйте, Flamer, Вы писали:
F>Очевидно, так:
F>1-й: складывает свою зряплату с произвольным числом. F>2-й: складывает число, полученное на шаге 1, со своей зряплатой F>3-й: то-же, что и второй. F>1-й: отнимает от итогового числа то самое, произвольно выбранное, и делит на 3.
F>
Наверное так не проконает. Потому что 3-ий знает 1-ое число и второе — соответственно он их отнимет и получит зарплату 2-ого.
Здравствуйте, Flamer, Вы писали:
F>Здравствуйте, orangy, Вы писали:
V>>3 сотрудника хотят узнать среднее арифметическое своих зарплат, но каждый не хочет выдавать размер своей зарплаты. F>Очевидно, так:
F>[]
O>А если он врёт? 2ой и 3ий достоверно-то не узнают...
F>А если 2-ой врет? Третий и первый то достоверно не узнают... А если 3-й врет? 1-й и второй достоверно не узнают
F>А решение соответствует условию нераскрытия информации.
Врать нет смысла, тогда никто правды не узнает, а тогда и смысла нет, разве что общественное мнение склонить к чему-то.
А в варианте со случайным числом, может (как я представляю быть так). Второй узнает зарпалату первого, когда узнает случайное число. Или второй с первым сговорятся, то и зарплату третьего узнать не сложно.
Здравствуйте, Vitko, Вы писали:
V>Здравствуйте, Flamer, Вы писали:
[]
V>Наверное так не проконает. Потому что 3-ий знает 1-ое число и второе — соответственно он их отнимет и получит зарплату 2-ого.
Почему? Третий не знает первого числа... Ему просто передают готовую сумму для сложения с его зарплатой... Третий знает только второе число M, которое суть:
(1S + N) + 2S = M
1S — зарплата первого
N — произвольное число
2S — зарплата второго
M — результат
И как из M получить зарплату второго Если третий знает только M?
Здравствуйте, Flamer, Вы писали:
V>Здравствуйте, Flamer, Вы писали:
F>[]
V>Наверное так не проконает. Потому что 3-ий знает 1-ое число и второе — соответственно он их отнимет и получит зарплату 2-ого.
F>Почему? Третий не знает первого числа... Ему просто передают готовую сумму для сложения с его зарплатой... Третий знает только второе число M, которое суть:
F>
F>(1S + N) + 2S = M
F>
F>1S — зарплата первого F>N — произвольное число F>2S — зарплата второго F>M — результат
F>И как из M получить зарплату второго Если третий знает только M?
Ну да ... это при условии что все честно. А ведь возможен вариант при котором 2-е сговариваются и выкупают з/п 3-его.?
Здравствуйте, Flamer, Вы писали:
F>Здравствуйте, orangy, Вы писали:
O>Здравствуйте, Flamer, Вы писали:
F>[]
O>А если он врёт? 2ой и 3ий достоверно-то не узнают...
F>Кстати, вдогонку: чтобы избежать "вранья" — процедуру повторяем 3 раза, при этом произвольное число на первом шаге задумывают поочередно. Если итоговые три цифры сошлись — никто не врал и никто не раскрыл своей зарплаты. И средняя цифра достоверна
Ну например, я три раза говорил, что у меня 1000000, и как это спасет от вранья?
[]
PLU>А в варианте со случайным числом, может (как я представляю быть так). Второй узнает зарпалату первого, когда узнает случайное число. Или второй с первым сговорятся, то и зарплату третьего узнать не сложно.
Выделенно жирным... А теперь условия задачи: никто Не хочет раскрывать уровень своей зряплаты. Если второй с первым сговорятся, условие нарушается... Патамушта тогда второму будет известно случайное число, 1-му и второму — зарплата третьего => второму — зарплата первого => противоречие, т.к. первый хочет узнать зарплату третьего, но не хочет открывать свою, что он сделает, назвав второму случайное число. Так что имхо решение верное...
Здравствуйте, Vitko, Вы писали:
V>Наверное так не проконает. Потому что 3-ий знает 1-ое число и второе — соответственно он их отнимет и получит зарплату 2-ого.
А зачем ему говорить? Пусть 1ый на ушко шепнет второму, тогда 3ий получит уже сумму.
[]
F>Кстати, вдогонку: чтобы избежать "вранья" — процедуру повторяем 3 раза, при этом произвольное число на первом шаге задумывают поочередно. Если итоговые три цифры сошлись — никто не врал и никто не раскрыл своей зарплаты. И средняя цифра достоверна
PLU>Ну например, я три раза говорил, что у меня 1000000, и как это спасет от вранья?
Еще раз:
Зряплаты:
1-й: 100 руб
2-й: 200 руб
3-й: 300 руб
Три прохода:
Первый проход:
1. 1-й загадывает случ. число 100 + 100 руб зарплаты = 200
2. 2-й прибавляет: 200 + 200 руб = 400
3. 3-й прибавляет: 400 + 300 руб = 700
4. 1-й отнимает и делит: 700 — 100 (случ число) = 600. 600/3 = 200 (ср. зарплата)
Второй проход:
1. 2-й загадывает случ число 128 + 200 = 328
2. 3-й прибавляет: 328 + 300 = 628
3. 1-й прибавляет: 628 + 100 = 728
4. 2-й: 728 — 128 = 600. 600/3 = 200 (результат).
Третий проход аналогично со сдвигом. Лень писать.
Итог: каждый знает только число, полученное на предыдущем шаге. Это знание не поможет узнать размер зарплаты ни одного из участников. Круговой сдвиг при загадывании случайного числа и три прохода гарантируют то, что никто не наврал (иначе хотя бы на одном этапе получившееся значение средней зарплаты будет отличаться от двух других). С увеличением кол-ва проходов и использованием генератора случайных чисел вместо выбора их участником достоверность должна увеличиваться... Уф, вроде усе...
Здравствуйте, Vitko, Вы писали:
V>Привет всем. V>В добавок к задачке о бассейне хочу задать следующую задачку .
V>3 сотрудника хотят узнать среднее арифметическое своих зарплат, но каждый не хочет выдавать размер своей зарплаты. V>Как им поступить ? V>Удачи.
Взяв урну, каждый по очереди бросает в неё шары (тщательно стерев с них отпечатки пальцев), количеством пропорциональным зарплате. Затем урну встряхивают (обязательно) и подсчитывают число шаров. Для получения средней зарплаты, делят полученное число на три.
Здравствуйте, Vitko, Вы писали:
V>Привет всем. V>В добавок к задачке о бассейне хочу задать следующую задачку .
V>3 сотрудника хотят узнать среднее арифметическое своих зарплат, но каждый не хочет выдавать размер своей зарплаты. V>Как им поступить ?
Вот именно так им и поступить!
Пойти и попить пива. Каждый берет с собой зарплату. Пьют. Если у кого-то деньги кончаются, остальные его поют. Потом каждый считает, на какую сумму выпил. Пить все должны с одинаковой скоростью.
Здравствуйте, RS, Вы писали:
RS>Здравствуйте, Vitko, Вы писали:
V>3 сотрудника хотят узнать среднее арифметическое своих зарплат, но каждый не хочет выдавать размер своей зарплаты. V>Как им поступить ?
интересно, а зачем трем сотрудникам может понадобиться среднее арифметическое своих зарплат?