Добрый день уважаемые программисты)Помогите пожалуйста написать программку,чтобы считала за меня.Вот что она должна сделать:
Имеем 6 чисел,тоесть расположены они по три и в разных столбцах
12 21
18 81
09 90
Нам нужно чтобы программа вычислила еще два неизвестных нам числа и получить в итоге 8 чисел.
Условия задачи :нужно чтобы слева мы берем самое большое и складываем с правым самым маленьким.И так далее слева по убывающей а справа по возрастающей.
Но чтобы при сложении у нас появились четыре числа которые по два числа будут равноудалены.
Как пример.
Начинаем подбирать
1 10
12 21
18 81
9 90
18(самое большое)+10(самое маленькое)=28
12(дальше по уменьшению)+21(дальше по увеличению)=33
9+81=90
1+90=91
Итог данная комбинация нам неподход поскольку получилось 28,33,90,91
Идем дальше подбирать
2 20
12 21
18 81
9 90
18+20=38
12+21=33
9+81=90
2+90=92
ОПЯТЬ НЕ подходит…
и так далее методом подбора.
идем дальше
21 12
12 21
18 81
9 90
21+12=33
18+21=39
12+81=93
9+90=99
Получилось!!!33,39,93,99
равноудалены две пары по два числа между 33 и 39 разница в 6 чисел и между 93 и 99 разница 6 чисел.!
Тебе нужна программа именно на C++ или язык не принципиален?
Суть задачи я понял, только скажи, числа только натуральные?
Диапазон значений какой? от 1 до 100 или от 1 до 1000 или от 1 до 1000000000 ?
Может же быть так, что подобрать нельзя? А если несколько пар чисел подходит, искать все решения или тебе одного достаточно?
p.s. задача очень странная. Если не секрет, где подобные вычисления могут пригодиться?
Добрый день!Да числа только натуральные!Язык не обязательно С++,мне как простому юзеру нужно просто открыть прогу,ввести имеющиеся числа и получить результат.
Диапазон от 1 до 99.Да может быть что и нельзя будет подобрать.Это тоже результат.
А если подходит несколько пар,то конечно нужны все результаты.
P.S. Хочу попробовать какой результат будет при вычислении очков в баскетболе,амер футболе.В ручную очень мучительно 100 и больше игр так разложить.
Мне тут в других источниках почти сделали))и там 5 нужных вариантов получилось
при имеющихся числах
12 21
18 81
9 90
Получили не хватающие
78 87
23 32
67 76
45 54
21 12
А, понял, тут подходящих под условие из первого сообщения пар намного больше получается, чем 5.
Видимо не хватает симметричности )
Вот сделал на Питоне. Таких тоже не 5.
import itertools
left_input = [12, 18, 9]
right_input = [21, 81, 90]
for pair in itertools.permutations(range(1, 100), 2):
left = sorted(left_input + [pair[0]], reverse=True)
right = sorted(right_input + [pair[1]])
results = [a + b for a, b in zip(left, right)]
if abs(results[0] - results[1]) == abs(results[2] - results[3]) and str(pair[0]).zfill(2) == str(pair[1]).zfill(2)[::-1]:
print(pair, results)