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

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

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

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




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

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

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


Имеете в виду в принципе нельзя или для набора из 8-ми цифр? Вот пример (подсмотрел на dxdy где то же поднимался подобный ворос) из 4-х цифр. Если существует такой набор цифр для массива из 4-х чисел, то может быть он существует и для массива из 8-ми чисел?

Код:
2, 6, 8, 10
и
3, 5, 7, 11

Вернуться к началу
 Профиль  
Cпасибо сказано 
За это сообщение пользователю Emphatic18 "Спасибо" сказали:
Li6-D
 Заголовок сообщения: Re: Восстановить числа по их попарным суммам
СообщениеДобавлено: 28 мар 2019, 10:52 
Не в сети
Одарённый
Зарегистрирован:
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. Это первый вариант.
Следующий вариант.
Х1+Х2=895
Х1+Х3=896
Х2+Х3=1725
Х1=33, Х2=862, Х3=863. Это второй вариант.
Следующий вариант.
Х1+Х2=895
Х1+Х3=896
Х2+Х3=1757
Х1=17, Х2=878, Х3=879. Это третий вариант.
Ищем последние три числа. Проверяем только четные суммы, чтобы получилось целое число.
Х8+Х7=2925
Х8+Х6=2921
Х7+Х6=2910
Х8=1468, Х7=1457, Х6=1453 Это первый вариант.
Х8+Х7=2925
Х8+Х6=2921
Х7+Х6=2876
Х8=1485, Х7=1440, Х6= 1436 Это второй вариант.
Х8+Х7=2925
Х8+Х6=2921
Х7+Х6=1818
Х8=2014, Х7=911, Х6=907 Это третий вариант.
Теперь совмещаем варианты.
Первый-первый. Х1+Х8=431+2014=2445. Нет такой суммы.
Первый- второй. Х1+Х8=431+1485=1916. Нет такой суммы.
Первый-третий. Х1+Х8=431+2014=2445. Нет такой суммы.
Второй-первый. Х1+Х8=33+1468=1501. Нет такой суммы.
Второй- второй. Х1+Х8=33+1485=1518. Нет такой суммы.
Второй-третий. Х1+Х8=33+2014= 2047. Есть такая сумма. Х1+Х7=33+911=944. Есть такая сумма.
Х1+Х6=33+907=940. Есть такая сумма.
Мы нашли решение. Х1=33, Х2=862, Х3=863, Х6=907, Х7=911, Х8=2014.
Ищем Х4 иХ5.
928-33=895, 895+862=1757, 895+2014=2909. Значит Х4=895.
2910-2014 =896, 896+33= 929, 896+862=1758 Значит Х5=896.
Какие замечания по данной методике?

Вернуться к началу
 Профиль  
Cпасибо сказано 
За это сообщение пользователю Galina Alexandrovna "Спасибо" сказали:
Li6-D
 Заголовок сообщения: Re: Восстановить числа по их попарным суммам
СообщениеДобавлено: 28 мар 2019, 13:04 
Не в сети
Профи
Зарегистрирован:
02 фев 2017, 00:21
Сообщений: 385
Cпасибо сказано: 3
Спасибо получено:
104 раз в 93 сообщениях
Очков репутации: 16

Добавить очки репутацииУменьшить очки репутации
irafat писал(а):
Двое играют в такую игру. Первый загадывает 8 действительных чисел (не обязательно различных) и пишет на листочке все их попарные суммы в произвольном порядке (некоторые из них могут совпадать). Второй по полученным 28 суммам должен определить исходные числа. Всегда ли он может гарантированно это сделать?

Ответ: нет. Ряды [math]2,6,8,10,13,15,17,21[/math] и [math]3,5,7,11,12,16,18,20[/math] дают идентичные 28 сумм.

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

Добавить очки репутацииУменьшить очки репутации
Это задача действительно для школьников, но с международной олимпиады (задача 5 на листе 5):
https://www.formulo.org/wp-content/uploads/2019/03/fdi_tm_2018_19_round2_sol.pdf
Все просто, если восьмиклассник "придумает" два набора, дающих одни и те же парные суммы :wink:
Цитирую решение по ссылке:
"Нет. Например, нельзя различить следующие два набора чисел:
1, 5, 7, 9, 12, 14, 16, 20 и 2, 4, 6, 10, 11, 15, 17, 19.
Или такие: -1, -1, -1, 1, 0, 2, 2, 2 и -2, 0, 0, 0, 3, 1, 1, 1.
"
То есть мое утверждение постом ранее "Не получится..." было ошибочным.
Интересно, есть ли тут система по составлению таких наборов и можно ли ее распространить не на 8, а на другое количество исходных чисел, например на 5?
Но программа действительно дешифрует и можно ее допилить (она будет даже проще), чтобы выводился не первый попавшийся, а все возможные наборы исходных чисел.
И второй школьник сообщает первому несколько наборов...

Насчет улучшенной методики - pourquoi pas? :Rose:

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

Добавить очки репутацииУменьшить очки репутации
Здесь можно уже тему переименовать - "как найти исходные числа из набора парных сумм".

Предлагаю такой алгоритм. Хотя принцип тот же. Но это для машинной реализации. Зато нет ограничения на целые числа и должен, на первый взгляд, гарантировангно получаться правильный результат.

X1+x2 = n1
X1+x3 = n2
X2+x3 = n3…n28

Решаем эту СЛАУ начиная с N3, до тех пор пока не совпадет x1+x2=n1 и x1+x3=n2. Находим n3.
Метим примененное N и больше его не используем.

Далее так же решаем СЛАУ из 4-х уравнений

X1+x2 = n1
X1+x3 = n2
X2+x3 = n3
X1+x4 = n& ; x1+x5 = n&; x1+x6 = n&; x1+x7=n&

По критерию соответствия первых трех уравнений, на каждом шаге метим найденное N и далее его не используем.

последнее Х8 находим как
X8 = sum(n1…n28)/7 – sum(x1…x7)

Делаем контроль на совпадение парных чисел найденных X исходному набору парных сумм. Если совпадения нет, то начинаем проход с начала, выбирая при решении первой системы следющее N.

Видите какие-то дыры в алгоритме или путь его упрощения?

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

Добавить очки репутацииУменьшить очки репутации
Система по составлению наборов.
Рассмотрев три набора из 8 чисел я сделала выводы:
1.Сумма чисел по рядам в каждом наборе одинакова.
2.Сумма первого и второго числа первого набора равна сумме первого и второго числа второго набора. То же самое для третьего и четвертого, пятого и шестого, седьмого и восьмого чисел первого и второго набора.
3.Расстояния между последующими числами вторым и первым, третьим и вторым, четвертым и третьим симметричны относительно расстояния между пятым и четвертым числам, расстояниям между шестым и пятым, седьмым и шестым, восьмым и седьмым.
4.В первом ряду первые четыре числа четные, вторые четыре числа нечетные, Во втором наоборот.
5. Суммы симметричных чисел одинаковы.
Этих данных достаточно для построения набора из двух рядов.
Например: берем числа 4, 8, 10, 12. Расстояния 4, 2, 2. Выберем пятое число 15. Тогда шестое число=15+2=17. Тогда седьмое число = 17+2=19, восьмое число=19+4=23.
Набор: 4, 8, 10, 12, !5, 17, 19, 23.
Второй набор: 4+8=12, 5+7=12, 10+12=22, 9+13=22
Первые четыре числа второго набора 5, 7, 9, 13. Пятое число= 27-13=14. Шестое число 27-9=18. Седьмое число 27-7=20. Восьмое число 27-5=22.
Набор 5, 7, 9, 13, 14, 18, 20, 22.
Я думаю количество наборов бесконечно.
Попарные суммы 12, 14, 16, !8, 19, 20, 21, 22, 23, 23, 25,25, 27, 27, 27,27, 29, 29, 31, 31, 32, 33,34, 35, 36, 38, 40, 42.

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

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

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

Добавить очки репутацииУменьшить очки репутации
Galina Alexandrovna писал(а):
Я думаю, если попарные суммы отрицательные или дробные эта методика тоже подходит.

А если цифр нечетное количество?

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

Добавить очки репутацииУменьшить очки репутации
Если чисел пять или другое нечетное количество маловероятно составить набор. Конечно, это мое личное мнение. Несложно найти наборы из четырех чисел. Их можно составить из частей наборов из восьми чисел. Например
4, 8, 10, 12 и 5, 7, 9, 13. 15, 17, 19, 23 и 14, 18, 20, 22. 1, 5, 7, 9 и 2, 4, 6, 10. Скорее всего можно составить набор из двенадцати или шестнадцати чисел. Я думаю правильность предполагаемых наборов надо считать по программе на компьютере. Ну сначала эту программу надо создать.

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

Добавить очки репутацииУменьшить очки репутации
Galina Alexandrovna писал(а):
Я думаю правильность предполагаемых наборов надо считать по программе на компьютере. Ну сначала эту программу надо создать.

Несложной доработкой кода, который разместил ранее, можно сделать новый вариант и использовать его даже online
Программа рассчитывает парные суммы 2-х наборов чисел, сравнивает их между собой и выдает результат о совпадении/(не совпадении). Попутно выводит дополнительную информацию о массивах.

▼ код
program summa_chisel
implicit none
integer :: m1(8,2) !Размер массива исходных чисел
integer :: i, j, k, n, s, size_m1, size_m2
integer, allocatable :: m2(:,:)
logical :: l, l1

size_m1 = size(m1, 1)
size_m2 = 0

!Определим размер массива парных сумм
do i = 1, size_m1 - 1
size_m2 = size_m2 + i
end do

allocate (m2(2, size_m2))

data m1/4, 8, 10, 12, 15, 17, 19, 23, & !Первый набор цифр (отсортированы)
5, 7, 9, 13, 14, 18, 20, 22/ !Второй набор цифр (отсортированы)

do s=1, 2
k=1; n=2
do i=1, size_m1-1
do j = n, size_m1
m2(s,k) = m1(i,s) + m1(j,s)
k=k+1
end do
n=n+1
end do
end do

l1=.true. !Переключатель направления сортировки
call sort_int (m2(1,:), size_m2, l1)
call sort_int (m2(2,:), size_m2, l1)

l = all (m2(1,:) == m2(2,:)) !Сравним парные суммы

print 100, m2 (1,:) !Печать первого массива парных сумм
print*,
print 100, m2 (2,:) !Печать второго массива парных сумм

print*,
print*, " Сумма исх. чисел 1-го набора = ", sum(m1(:,1))
print*, " Сумма исх. чисел 2-го набора = ", sum(m1(:,2))
print*, " Сумма парных сумм 1-го набора = ", sum(m2(1,:))
print*, " Сумма парных сумм 2-го набора = ", sum(m2(2,:))
print*, " Размер исходного массива = ", size_m1
print*, " Размер массива парных чисел = ", size_m2
print*,

if (l) then
print*, " Результат: coвпадение сумм есть !!!"
else
print*, " Результат: cовпадения нет."
end if

deallocate (m2)
100 format (7i10)
end program summa_chisel

Для изменения чисел нужно в строчках помеченных как "!Первый набор цифр и !Второй набор цифр" ввести свои числа:
    1. числа отделяются запятыми
    2. первая строчка должна закончится запятой и символом &
    3. вторая строчка должна закончится символом / без запятой

Если меняете количество цифр, то дополнительно нужно указать количество чисел набора, это делается в строчке №3 кода (в online версии №7) integer :: m1(8,2) !Размер массива исходных чисел.
В примере по 8 цифр, если в Вашем примере будет по 10 цифр, то запись должна быть integer :: m1(10,2)

Можете попробовать по этой ссылке. Нужно нажать внизу кнопку Run и посмотреть результат. Пример для целых чисел.

ps Модуль сортировки sort у меня скомпилирован отдельно, но в online это не прокатит, поэтому там дополнительно прикручен код из этого модуля.

Вернуться к началу
 Профиль  
Cпасибо сказано 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему    На страницу Пред.  1, 2, 3, 4  След.  Страница 3 из 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