Дискуссионный математический форумМатематический форум
Математический форум Math Help Planet

Обсуждение и решение задач по математике, физике, химии, экономике

Теоретический раздел
Часовой пояс: UTC + 3 часа [ Летнее время ]
MathHelpPlanet.com RSS-лента Математического форума

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 40 ]  На страницу Пред.  1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения: Re: Восстановить числа по их попарным суммам
СообщениеДобавлено: 24 мар 2019, 14:43 
Не в сети
Мастер
Зарегистрирован:
02 июн 2018, 08:50
Сообщений: 247
Cпасибо сказано: 9
Спасибо получено:
36 раз в 34 сообщениях
Очков репутации: 5

Добавить очки репутацииУменьшить очки репутации
Li6-D писал(а):
Проще оказалось написать программку, чем описать методику расчета.
Кому интересно могу объяснить нюансы.

Хотел то же написать, но не понял алгоритм по коду. Написал "генератор" парных сумм. Можно проверить, числа целые, хотя можно с дробными сделать.
Для публикации здесь цифры исходного массива затер, обозначил как x1...x8

▼ код
program summa_chisel
implicit none
integer :: m1(8), m2(28), i, j, k, n
logical :: l

data m1/x1, x2, x3, x4, x5, x6, x7, x8/

k=1; n=2

do i=1, 7
do j = n, 8
m2(k) = m1(i) + m1(j)
k=k+1
end do
n=n+1
end do

l=.true. !Переключатель направления сортировки
call sort (m2, k-1, l)
print 100, m2

100 format (5i5)
end program


Код:
Пример 1

   40   50   50   70   70
   80   80   80   90   90
   90  100  100  100  110
  110  110  110  120  120
  130  130  140  140  150
  150  160  170


Пример 2

   46   53   53   73   73
   80   83   83   90   98
   98  103  103  105  110
  110  113  113  120  125
  130  135  140  140  150
  155  165  170

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Восстановить числа по их попарным суммам
СообщениеДобавлено: 24 мар 2019, 19:59 
Не в сети
Оракул
Аватара пользователя
Зарегистрирован:
10 дек 2014, 20:21
Сообщений: 786
Cпасибо сказано: 107
Спасибо получено:
396 раз в 330 сообщениях
Очков репутации: 79

Добавить очки репутацииУменьшить очки репутации
В примере 1 исходные числа алгоритм определил как: 20, 20, 30, 50, 60, 70, 80, 90.
В примере 2: 23, 23, 30, 50, 60, 75, 80, 90.
Изображение.

Если коротко, то алгоритм дешифровки работает так:
Сначала попарные суммы сортируются по возрастанию.
Первые два числа - это сумма самого меньшего числа x1 с вторым x2 и третьим по величине x3.
Чтобы определить три наименьших числа, нам надо еще знать число x2+x3.
Сложность в том, что это число необязательно находится на третьем месте среди попарных сумм.
Оно может находиться и правее.
Поясню на Примере 1 выше. Допустим первое исходное число x1 не 20, а -200.
Тогда сумма x2+x3=50, окажется лишь на восьмом месте. пропустив вперед себя все суммы с x1: x1+x2;x1+x3,...x1+x8:
(-180,-170,-150,-140,-130,-120,-110,50,70,80,80,90,90,100,100,110,110,110,120,120,130,130,140,140,150,150,160,170).
Гарантируется лишь то, что сумма b+c находится с 3-го по 8-ое место включительно.
Поэтому алгоритм делает шесть попыток - последовательно проверят суммы на этих местах,
каждый раз вычисляя тройку x1,x2,x3 исходя из известных сумм x1+x2, x1+x3 и кандидатом на сумму x2+x3.
Затем алгоритм пытается дешифровать остальные числа, что достаточно легко (это можно сделать даже c одним известным x1).
Возможно два варианта развития событий:
- найдутся все исходные числа и алгоритм вернет их в результате расчета закончив работу.
- среди попарных сумм окажется такое число, которое не является суммой пары известных чисел.
Последнее событие еще не фиаско, алгоритм приступает к исследованию со следующим кандидатом на сумму x2+x3.
Фиаско наступит в случае, когда по результатам всех 6-ти попыток не удастся дешифровать исходные числа.
Тогда и появится сообщение "Ошибка: числа в матрице не являются попарными суммами нескольких чисел".

P.S. Заданная матрица-строка с попарными суммами не обязательно должна содержать строго 28 чисел.
В ней может содержаться 3,6,10,15,21,28,36... чисел.
Количество чисел - треугольное число вида [math]\frac{n(n-1)}{2}[/math], [math]n=3,4,5...[/math]

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Восстановить числа по их попарным суммам
СообщениеДобавлено: 25 мар 2019, 11:19 
Не в сети
Одарённый
Зарегистрирован:
21 июл 2016, 07:08
Сообщений: 116
Cпасибо сказано: 8
Спасибо получено:
17 раз в 14 сообщениях
Очков репутации: 3

Добавить очки репутацииУменьшить очки репутации
Li-6D,
Эта задача дана, как задача для школьников. Поэтому я считаю- важно найти простой логический способ решения. Если я вас правильно поняла, вы считаете, что предложенный мной вариант не подходит для решения этой задачи. Я попробовала несколько вариантов условия задачи. И всегда получала задуманные числа. Я предлагаю вам задать мне 28 попарных сумм, таких , по которым вы считаете нельзя восстановить задуманные числа. При условии, что задуманные числа - целые, положительные.

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Восстановить числа по их попарным суммам
СообщениеДобавлено: 25 мар 2019, 18:53 
Не в сети
Оракул
Аватара пользователя
Зарегистрирован:
10 дек 2014, 20:21
Сообщений: 786
Cпасибо сказано: 107
Спасибо получено:
396 раз в 330 сообщениях
Очков репутации: 79

Добавить очки репутацииУменьшить очки репутации
Galina Alexandrovna писал(а):
Эта задача дана, как задача для школьников. Поэтому я считаю- важно найти простой логический способ решения.

Согласен с Вами. Но пока не понимаю этого простого способа.
Galina Alexandrovna писал(а):
Если я вас правильно поняла, вы считаете, что предложенный мной вариант не подходит для решения этой задачи.

Подходит, но не всегда. Надо исследовать не только четверку самых маленьких и больших сумм, но и смотреть дальше.
Galina Alexandrovna писал(а):
Я предлагаю вам задать мне 28 попарных сумм, таких , по которым вы считаете нельзя восстановить задуманные числа. При условии, что задуманные числа - целые, положительные

Зашифровал восемь исторических дат нашей эры:
895, 896, 928, 929, 940, 944, 1725,
1757, 1758, 1758, 1759, 1769, 1770, 1773,
1774, 1791, 1802, 1803, 1806, 1807, 1818,
2047, 2876, 2877, 2909, 2910, 2921, 2925.
▼ Хотя в задаче говорится вообще о действительных числах
То есть первый имел право составить для второго такие карточки:
-0.2477470292, -0.1817427313, 0.07752071017, 0.169771693, 0.8017631803, 1.002407518, 1.061026622,
1.12703092, 1.153277605, 1.219281903, 1.478545344, 1.891001804, 1.98591343, 2.051917728,
2.311181169, 2.403432152, 2.874507716, 2.940512014, 3.199775455, 3.292026438, 4.124662263,
6.476530392, 7.460036304, 7.526040602, 7.785304043, 7.877555026, 8.710190851, 9.598785137
Вопрос - всегда ли можно расшифровать задуманное?

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Восстановить числа по их попарным суммам
СообщениеДобавлено: 25 мар 2019, 19:36 
Не в сети
Мастер
Зарегистрирован:
02 июн 2018, 08:50
Сообщений: 247
Cпасибо сказано: 9
Спасибо получено:
36 раз в 34 сообщениях
Очков репутации: 5

Добавить очки репутацииУменьшить очки репутации
Да, числа были забиты эти, хотя в другом порядке следования.

Код:
data m1/80, 90, 50, 70, 20, 30, 20, 60/   !Пример 1
data m1/80, 90, 50, 75, 23, 30, 23, 60/   !Пример 2

Интересно, можно ведь попробовать найти такие одни и те же парные суммы, которые получаются из разного набора чисел.

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Восстановить числа по их попарным суммам
СообщениеДобавлено: 25 мар 2019, 19:56 
Не в сети
Оракул
Аватара пользователя
Зарегистрирован:
10 дек 2014, 20:21
Сообщений: 786
Cпасибо сказано: 107
Спасибо получено:
396 раз в 330 сообщениях
Очков репутации: 79

Добавить очки репутацииУменьшить очки репутации
Emphatic18 писал(а):
Интересно, можно ведь попробовать найти такие одни и те же парные суммы, которые получаются из разного набора чисел.

Не получится.
Нельзя взять восемь чисел, из которых хотя бы одно отлично от нуля и получить 28 нулей в попарных суммах.

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Восстановить числа по их попарным суммам
СообщениеДобавлено: 26 мар 2019, 19:28 
Не в сети
Одарённый
Зарегистрирован:
21 июл 2016, 07:08
Сообщений: 116
Cпасибо сказано: 8
Спасибо получено:
17 раз в 14 сообщениях
Очков репутации: 3

Добавить очки репутацииУменьшить очки репутации
Рассмотрим ход решения.
Х1+Х2=895
Х1+Х3=896
Х2+Х3=929
928 не подходит как четное число
Решаем. Х1=431, Х2=464, Х3=465
Предположим Х4=928-431
Проверяем.
Х1+Х4=431+497=928
Х2+Х4=464+497=961-нет такой суммы.
Предположим Х4=940-431=509
Проверяем.
Х1+Х4=431+509=940
Х2+Х4=464+509=973-нет такой суммы.
Предположим Х4=944-431=513
Х1+Х4=431+513=944
Х2+Х4=464+513=977-нет такой суммы.
Дальше можно не искать. Дальше слишком большие суммы. Нет решения.
Вообще я имела ввиду сложный, но решаемый вариант.

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Восстановить числа по их попарным суммам
СообщениеДобавлено: 26 мар 2019, 19:43 
Не в сети
Оракул
Аватара пользователя
Зарегистрирован:
10 дек 2014, 20:21
Сообщений: 786
Cпасибо сказано: 107
Спасибо получено:
396 раз в 330 сообщениях
Очков репутации: 79

Добавить очки репутацииУменьшить очки репутации
Были зашифрованы числа: 33, 862, 863, 895, 896, 907, 911, 2014.

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Восстановить числа по их попарным суммам
СообщениеДобавлено: 27 мар 2019, 15:50 
Не в сети
Одарённый
Зарегистрирован:
21 июл 2016, 07:08
Сообщений: 116
Cпасибо сказано: 8
Спасибо получено:
17 раз в 14 сообщениях
Очков репутации: 3

Добавить очки репутацииУменьшить очки репутации
Я отрабатывала расчеты на двузначных числах. Поэтому методика расчета получилась очень простая и хорошо согласовывалась с заданными числами. Появление одного маленького числа изменило картину. Но, я думаю, можно разработать более сложную и более правильную методику расчета задуманных чисел.

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Восстановить числа по их попарным суммам
СообщениеДобавлено: 27 мар 2019, 17:23 
Не в сети
Мастер
Зарегистрирован:
02 июн 2018, 08:50
Сообщений: 247
Cпасибо сказано: 9
Спасибо получено:
36 раз в 34 сообщениях
Очков репутации: 5

Добавить очки репутацииУменьшить очки репутации
Li6-D писал(а):
Были зашифрованы числа: 33, 862, 863, 895, 896, 907, 911, 2014.

В данном случае система управнений

х1+х2=N1
x1+x3=N2
x2+x3=N(3...8)

имеет не одно решение, отсюда не получается и результат.
правильное, исходя из зашифрованных чисел, такое
Код:
33 + 862 = N1 = 895  это верно
33 + 863 = N2 = 896  это верно
862 + 863 = N7 = 1725 - это верно

Но может быть по другому
Код:
431,5 + 463,5 = 895
431,5 + 464,5 = 896
463,5 + 464,5 = 928 = N3

Может быть еще по другому
Код:
425,5 + 469,5 = 895
425,5 + 470,5 = 896
469,5 + 470,5 = 940 = N5

Может быть так
Код:
17 + 878  = 895
17 + 879  = 896
878 + 879 = 1757 = N7

Или так
Код:
16,5 + 878,5 = 895
16,5 + 879,5 = 896
878,5 + 879,5 = 1758 = N9


Li6-D, а ваша программа правильно считает?

Вернуться к началу
 Профиль  
Cпасибо сказано 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему    На страницу Пред.  1, 2, 3, 4  След.  Страница 2 из 4 [ Сообщений: 40 ]

 Похожие темы   Автор   Ответы   Просмотры   Последнее сообщение 
Восстановить равенство

в форуме Алгебра

nastya_grigorenko

3

630

07 сен 2013, 15:45

Восстановить функцию

в форуме Комплексный анализ и Операционное исчисление

Ryslannn

1

309

22 мар 2014, 13:52

Восстановить аналитическую функцию

в форуме Комплексный анализ и Операционное исчисление

grimlok2013

5

347

20 дек 2015, 11:01

Восстановить аналитическую функцию

в форуме Комплексный анализ и Операционное исчисление

hummel

4

413

20 фев 2012, 19:33

Как восстановить середину шестиугольника

в форуме Геометрия

NakaNaka

1

227

28 авг 2013, 10:13

Восстановить аналитическую функцию

в форуме Комплексный анализ и Операционное исчисление

Sasha95

1

365

09 ноя 2013, 14:27

Восстановить аналитическую функцию

в форуме Комплексный анализ и Операционное исчисление

Veltare

3

194

30 ноя 2017, 12:38

Восстановить аналитическую функцию

в форуме Комплексный анализ и Операционное исчисление

gigsKA

26

4398

25 мар 2013, 15:57

Восстановить регулярную функцию

в форуме Комплексный анализ и Операционное исчисление

Marry

1

127

04 июн 2018, 11:34

Восстановить аналитическую функцию f(z)

в форуме Комплексный анализ и Операционное исчисление

sfanter

1

331

29 май 2016, 12:29


Часовой пояс: UTC + 3 часа [ Летнее время ]



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Яндекс.Метрика

Copyright © 2010-2019 MathHelpPlanet.com. All rights reserved