Новогодний арифметический конкурс 2022

Это конкурс должен был объявлять придумавший его Harry, но он почему-то передумал. Поэтому я за него ))

Вот условия конкурса:


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

Новогодний коннкурс на 2022 год (который, кстати, находится как раз посредине между двумя простыми годами — 2017 и 2027).

Задача — представить число 2022 с помощью как можно меньшего количества одинаковых цифр.

Можно использовать скобки, арифметические операции, возведение в степень, квадратный корень, факториал или двойной факториал (напомню, что двойной факториал для нечетного — произведение всех нечетных, не превышающих данное число, для четного — соответственно четных). Две номинации - только для "скобки, арифметические операции, возведение в степень", и вторая — разрешено всё выше перечисленное.

И еще — то же самое для ряда цифр 1234567890 и 9876543210 - постараться по возможности получить 2022 для всех подпоследовательностей — ну, там, для 1234567, 12345678 и так далее. Ноль не должен быть тривиальным (например, в конце +0)!

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

Чтобы было понятнее, что требуется — вот несколько решений для 2021 года:

1-(1+1)*(1-11111)/11
((999+99/9)*(9+9)+9)/9
((9+9)/9)^(99/9)-9-9-9 
((9+9)/9)^(99/9)-sqrt(9)*9
((9-8)*7*6+5)*43
1*2+3+4*(56+7)*8

Срок конкурса ограничим 5 днями, чтобы не затягивать. По договоренности, Harry участвует вне конкурса, чтобы не могло быть никаких претензий, что он заранее долго думал. Т.е. он может участвовать, но не может быть объявлен победителем.

От себя объявляю приз победителю в 400 баллов, но приглашаю спонсоров поучаствовать и наградить понравившихся участников и решения.


Ответы (14 шт):

Автор решения: MaxU

Кратчайшее решение: 9 двоек

Единицы:

(11111-1)/11*(1+1)+1+1
(1+1)^11-(1+1)*11-(1+1)*(1+1)

Двойки:

2222-222+22
2^(22/2)-22-2^2

Тройки:

(333+3+3^(3-3))*(3*3-3)

Четверки:

(444+44+4*4)*4+4+√4
→ Ссылка
Автор решения: greg zakharov
pwsh
# единственный ноль
[int]"$($$=0)$(++$$)$$$(--$$)$$$(++$$)$$$$"*(++$$)
# единственная единица
[int]"$($$=1)$$$(--$$)$$$(++$$)$$$$"*(++$$)
# ещё вариант с единицей (трюк с бинарной системой счисления)
[int][Convert]::ToString("$($$=1)$$$$", ($$=$$+$$))*$$
# совсем без цифр
[int]"$($$=!!{}+!!{})$$$([int]!{})$$$$"
js

// шесть единиц (всё тот же трюк с бинарной системной счисления)
console.log(Number(11).toString(1+1)*(1+1));
// пять четвёрок (трюк с троичной системой счисления)
console.log(Number((4<<4)-Math.sqrt(4)).toString(4-(Math.log(4)^{})));
// восемь шестёрок
console.log((66<<6)/(Math.sqrt(6)^{})-((6<<6-(Math.sqrt(6)^{}))-6));
// пять восьмёрок
console.log(((8<<8)-8*Math.sqrt(8)-Math.sqrt(8))^{});
// семь девяток
console.log((Math.sqrt(9e9|9)/(9+9/9)-Math.sqrt(9))^{});
// "горбатая" последовательность (все цифры)
console.log(1e3*2+5*4+7-6+9-8);
// число Непера и π (до кучи)
console.log((Math.E^{})**((Math.E*Math.PI+Math.E)^{})-((Math.PI<<Math.E)*(Math.E^{})+Math.E^{}));

UPD

Небольшое дополнение (к решению @avp) по поводу систем счисления. В принципе, можно использовать любую из них, чтобы получить заветное 2022, совершая различные операции исключительно над каким-то одним числом (пусть той же двойкой). В троичной системе 2022 "соответствует" 62, получить которое можно, скажем, так (~2-2)*~2*2*2+2; в системе счисления по основанию четыре - 138, т.е. (~2<<2)**2+(~2+~2) и т.д.

→ Ссылка
Автор решения: avp

Только из одиночных цифр 2

В шестнадцатиричной системе счисления:

((2 << 2 << 2) << (2 << 2)) + (2 << 2 << 2) + 2 == 0x2022

В десятичной:

(2 << ((2 << 2) + 2)) - (2 << 2 << 2) + (2 << 2) - 2 == 2022
→ Ссылка
Автор решения: Qwertiy

От 0 до 9:

f=n=>n<2?1:n*f(n-1)
F=n=>n<2?1:n*F(n-2)
v=Math.sqrt

console.log(((f(0)<<F(f(0)<<f(0)<<f(0)))-f(0)-f(0)-f(0)<<f(0)<<f(0)<<f(0))-f(0)^f(0))
console.log((1+1)**11-(11+1+1)*(1+1))
console.log(2222-222+22)
console.log((333*3+3*3+3)*f(3)/3)
console.log((4444-444+44)/F(4)*4)
console.log(F(55/5)/5-55-5^5)
console.log(6**6/F(6)*(66&6)+66+6+6)
console.log(F(7)*F(7)/7+77*7-77-7-7-7/7)
console.log(8888-888+88>>(8/8+8/8))
console.log(f(9)/F(9)*9/v(9)|999&~9)
.as-console-wrapper.as-console-wrapper { max-height: 100vh }

→ Ссылка
Автор решения: Danis

2022 единицы:

1 + 1 + 1 + 1 + 1 + ... + 1 + 1 + 1 + 1 = 2022
→ Ссылка
Автор решения: Danis

восемь девяток:

((9+9+9)*9-9-9)*9 - sqrt(9)
→ Ссылка
Автор решения: DiD

// Да кому в 2022 нужны эти цифры?!
console.log( +(!+[]+!![]+[])+(+[]+[])+(!+[]+!![]+[])+(!+[]+!![]+[]) );

// Использованы все цифры 

console.log( 0.123e4+(5^6)+789 );
console.log( +([]+(0*1+2+3+4+5+6)+(7^(8+9))) );
console.log( 2*(10+(9-8+3*4)*(5+6)*7) );//чуть не по порядку

// Шесть двоек

console.log( 2222-2e2 );

// Просто баловство 
// (может, кого натолкнет на новые мысли)
   
console.log( 123456 ^ 124326 );
console.log( 123456789 ^ 123456243 );
console.log( 012345 ^ ([]+(6*8)+67) );

→ Ссылка
Автор решения: Andrey Semykin
//СЕМЬ ЧЕТВЕРОК
console.log(4 * (4 ** 4 * Math.sqrt(4) - 4 - Math.sqrt(4)) - Math.sqrt(4));
→ Ссылка
Автор решения: Harry

Раз все равно вне конкурса, то формальности соблюдать не буду :)

Внизу табличка. Слева — то, чего удалось достичь с использованием факториалов, степеней и так далее, справа — только арифметика.

Что касается последовательностей 123... и 987... — то лучшее, что смог, это начать с 123456, и то с использованием степени и факториала; 1234567 и далее — чистая арифметика.

В обратном направлении — 98765 и 987654 — с факториалами, бифакториалами и радикалами; чистой арифметикой удалось только с 9876543.

Понравилась идея avp, сам у себя попросил разрешения использовать битовые операции, сдвиги и остаток от деления, и сам себе разрешил.

Удалось улучшить результат для всех цифр, кроме 2 и 6. Для последовательностей удалось получить 9876. Лучше ничего не получается.

Еще мне понравилась идея Qwertiy c нулями. Объединив ее со сдвигами avp, удалось обойтись десятью нулями (без битовых операций — двенадцатью, но я уже не стал включать этот результат).

Потом я разрешил себе побитовое отрицание, улучшил результат для 2 и добился последовательности 12345... но... Мне эти результаты представляются сомнительными — в том плане, что их смешение с арифметикой, вообще говоря, зависит от используемой при расчетах архитектуры. Поэтому, если бы я участвовал на общих основаниях, я бы не стал публиковать результаты с битовыми операциями. Математика есть математика :)

введите сюда описание изображения

P.S. Оставляю за собой право дополнять/исправлять ответ :)
P.P.S. Возможно, где-то налепил лишних скобок. Ну плохо я помню все эти приоритеты... Да и не привязано задание к языку программирования.

→ Ссылка
Автор решения: Dmitry

Если использовать только арифметические оперции и возвденеие в степень

Еденицы (10 шт)

(1 + 1)**11 - (11 + 1 + 1)*(1+1)

Двойки (8 шт)

2**(22/2) - (22 + 2 + 2)

Тройки (10 шт)

3 * (3**(3 + 3) - (3**3 + 3**3 + 3/3))

Далее решения однотипные, которые включают 11 степень двойки и дальнейшие манипуляции, которые приводят к результату <= 12 цифр

Четверки (12 шт)

((4 + 4)/4)**(44/4) - ((44 * 4) / (4 + 4) + 4)

Пятерки (10 шт)

((5 + 5)/5)**(55/5) - (5 * 5 + 5/5)

и т.д.

Поискал совпадения в pi, если интересно кому, то здесь первое попадание

<re.Match object; span=(16335, 16339), match='2022'>

UPD Здесь буду добавлять найденные варианты в течении 2022 года

Последовательность 9876543210 (с сохранением порядка)

(9*8*7-6-5)*4 + (3+2)*10

Последовательность 0123456789

1023*4 - 5*6*(78-9)

Последовательность 01234567

2045 - (5*7 - (6+4+3-1))

Последовательность 0123456

2034 - 1 - 5 - 6
→ Ссылка
Автор решения: Pavel12398

насколько я понял в задаче указано как можно меньшего количества одинаковых цифр

такой вариант вполне подойдет

2022 = 1*2*3*337

все просто и нет не одной одинаковой цифры.

и еще как вариант

d = 1 * 2 * 3 * (pow(2, 3)*(pow(2, 3)*5+2)+1)
print(d)
→ Ссылка
Автор решения: Yaroslav

Покажу такой вариант:

2*3*337=2022
2^11-26=2022
→ Ссылка
Автор решения: Harry

Поскольку новый конкурс заводить не хочется, просто делюсь тем, что накропал для 2023 года на тех же условиях (в этот раз — без битовых операций).

введите сюда описание изображения

Update

И как я пропустил такой шедевр?! 77%7!

А еще ~(6*6!!)*~6

→ Ссылка