Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Счастливые билеты - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин  
Счастливые билеты
MCH Дата: Пятница, 06.07.2012, 16:00 | Сообщение № 1
Группа: Админы
Ранг: Старожил
Сообщений: 2004
Репутация: 752 ±
Замечаний: ±

Очень часто, когда езжу на общественном транспорте, решаю задачку с цифрами из билета.

Сама задачка:
Автобусный билет считается счастливым, если между его цифрами можно в нужных местах расставить знаки четырёх арифметических действий и скобки так, чтобы значение полученного выражения равнялось 100, необходимо поставить 5 знаков (между каждой цифрой), последовательность вычислений - любая, регламентируется скобками.

Как можно решить задачу, так чтобы при вводе числа от 000000 до 999999 получить формулу, в результате которой получается число 100
Например, есть число 123456,
100 можно получить по формуле: =1+(2+3+4)*(5+6)

Для сведения числа:
012345, 123456, 234567, 345678, 456789, 567890, 098765, 987654, 876543, 765432, 654321, 543210, 444444, 555555, 777777, 999999
имеют решения

Приветствуются любые варианты решения: формулами, макросами (с использованием Evaluate и без) или просто в уме.

1. Для начала, нужно получить решения для всех вышеперечисленных чисел, можно решить и без программирования
2. Сколько всего таких чисел в 1 млн. билетов, т.е. какова вероятность получить "счастливый" белет?
3. Какова максимальная последовательность подряд идущих "счастливых" билетов?

На 2 и 3 вопрос точно ответить нельзя без полного прорешивания всего миллиона билетов. Буду очень удивлен, если ктото даст ответ на эти вопросы менее чем через неделю, по крайне мере у меня ушло на это больше недели (правда компьютер слабенький).
 
Ответить
СообщениеОчень часто, когда езжу на общественном транспорте, решаю задачку с цифрами из билета.

Сама задачка:
Автобусный билет считается счастливым, если между его цифрами можно в нужных местах расставить знаки четырёх арифметических действий и скобки так, чтобы значение полученного выражения равнялось 100, необходимо поставить 5 знаков (между каждой цифрой), последовательность вычислений - любая, регламентируется скобками.

Как можно решить задачу, так чтобы при вводе числа от 000000 до 999999 получить формулу, в результате которой получается число 100
Например, есть число 123456,
100 можно получить по формуле: =1+(2+3+4)*(5+6)

Для сведения числа:
012345, 123456, 234567, 345678, 456789, 567890, 098765, 987654, 876543, 765432, 654321, 543210, 444444, 555555, 777777, 999999
имеют решения

Приветствуются любые варианты решения: формулами, макросами (с использованием Evaluate и без) или просто в уме.

1. Для начала, нужно получить решения для всех вышеперечисленных чисел, можно решить и без программирования
2. Сколько всего таких чисел в 1 млн. билетов, т.е. какова вероятность получить "счастливый" белет?
3. Какова максимальная последовательность подряд идущих "счастливых" билетов?

На 2 и 3 вопрос точно ответить нельзя без полного прорешивания всего миллиона билетов. Буду очень удивлен, если ктото даст ответ на эти вопросы менее чем через неделю, по крайне мере у меня ушло на это больше недели (правда компьютер слабенький).

Автор - MCH
Дата добавления - 06.07.2012 в 16:00
ZORRO2005 Дата: Пятница, 06.07.2012, 16:58 | Сообщение № 2
Группа: Друзья
Ранг: Обитатель
Сообщений: 382
Репутация: 148 ±
Замечаний: 0% ±

Excel2010
Quote (MCH)
Для сведения числа: 012345, 123456, 234567, 345678, 456789, 567890, 098765, 987654, 876543, 765432, 654321, 543210, 444444, 555555, 777777, 999999 имеют решения

Получается, что билет 181256 тоже счастливый, т.к. 1+(8-1+2)*(5+6)=100


Сообщение отредактировал ZORRO2005 - Пятница, 06.07.2012, 17:04
 
Ответить
Сообщение
Quote (MCH)
Для сведения числа: 012345, 123456, 234567, 345678, 456789, 567890, 098765, 987654, 876543, 765432, 654321, 543210, 444444, 555555, 777777, 999999 имеют решения

Получается, что билет 181256 тоже счастливый, т.к. 1+(8-1+2)*(5+6)=100

Автор - ZORRO2005
Дата добавления - 06.07.2012 в 16:58
MCH Дата: Пятница, 06.07.2012, 17:07 | Сообщение № 3
Группа: Админы
Ранг: Старожил
Сообщений: 2004
Репутация: 752 ±
Замечаний: ±

Quote (ZORRO2005)
Получается, что билет 181256 тоже счастливый

Да
 
Ответить
Сообщение
Quote (ZORRO2005)
Получается, что билет 181256 тоже счастливый

Да

Автор - MCH
Дата добавления - 06.07.2012 в 17:07
ZORRO2005 Дата: Пятница, 06.07.2012, 21:24 | Сообщение № 4
Группа: Друзья
Ранг: Обитатель
Сообщений: 382
Репутация: 148 ±
Замечаний: 0% ±

Excel2010
1. Решено формулами.

Выложу те, где всего 1 вариант сложения:
456789: (4+5)*(6+7)-8-9
567890: 5+(6+7)*8-9-0
098765: 0-9+8*(7+6)+5
765432: 7*(6+5+4)-3-2
654321: (6+5)*(4+3+2)+1
777777: (7+7)*(7+7/7/7)

Миша, билеты ниже моя формула посчитала несчастливыми:
123456
234567
345678
987654
876543


Quote (MCH)
необходимо поставить 5 знаков (между каждой цифрой)

Еще может быть минус перед 1-ой цифрой. Я его не учитывал.
Да, и двойные скобки тоже.


Сообщение отредактировал ZORRO2005 - Пятница, 06.07.2012, 22:36
 
Ответить
Сообщение1. Решено формулами.

Выложу те, где всего 1 вариант сложения:
456789: (4+5)*(6+7)-8-9
567890: 5+(6+7)*8-9-0
098765: 0-9+8*(7+6)+5
765432: 7*(6+5+4)-3-2
654321: (6+5)*(4+3+2)+1
777777: (7+7)*(7+7/7/7)

Миша, билеты ниже моя формула посчитала несчастливыми:
123456
234567
345678
987654
876543


Quote (MCH)
необходимо поставить 5 знаков (между каждой цифрой)

Еще может быть минус перед 1-ой цифрой. Я его не учитывал.
Да, и двойные скобки тоже.

Автор - ZORRO2005
Дата добавления - 06.07.2012 в 21:24
MCH Дата: Пятница, 06.07.2012, 21:45 | Сообщение № 5
Группа: Админы
Ранг: Старожил
Сообщений: 2004
Репутация: 752 ±
Замечаний: ±

Quote (ZORRO2005)
Миша, билеты ниже моя формула посчитала несчастливыми:
123456

пример с числом 123456 приведен в 1 посте
234567: =2*(3+(4+5)*6-7)

Quote (ZORRO2005)
Еще может быть минус перед 1-ой цифрой

Я не использовал данный прием, т.к это не оговорено в условиях

Quote (ZORRO2005)
Да, и двойные скобки тоже

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

моя UDF возврашает не в упрощенном варианте, а со всеми вложениями скобок::
=1+(((2+3)+4)*(5+6))
=2*((3+((4+5)*6))-7)
дописал функцию, возвращает в сокращенном формате:
123456: =1+(2+3+4)*(5+6)
234567: =2*(3+(4+5)*6-7)


Сообщение отредактировал MCH - Суббота, 07.07.2012, 14:12
 
Ответить
Сообщение
Quote (ZORRO2005)
Миша, билеты ниже моя формула посчитала несчастливыми:
123456

пример с числом 123456 приведен в 1 посте
234567: =2*(3+(4+5)*6-7)

Quote (ZORRO2005)
Еще может быть минус перед 1-ой цифрой

Я не использовал данный прием, т.к это не оговорено в условиях

Quote (ZORRO2005)
Да, и двойные скобки тоже

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

моя UDF возврашает не в упрощенном варианте, а со всеми вложениями скобок::
=1+(((2+3)+4)*(5+6))
=2*((3+((4+5)*6))-7)
дописал функцию, возвращает в сокращенном формате:
123456: =1+(2+3+4)*(5+6)
234567: =2*(3+(4+5)*6-7)

Автор - MCH
Дата добавления - 06.07.2012 в 21:45
ZORRO2005 Дата: Пятница, 06.07.2012, 21:48 | Сообщение № 6
Группа: Друзья
Ранг: Обитатель
Сообщений: 382
Репутация: 148 ±
Замечаний: 0% ±

Excel2010
Понял, исправляюсь:

345678:
(3+4-5)*(6*7+8)
3+(4+5+6)*7-8
987654:
9+(8+7)*6+5-4
(9+8+7+6-5)*4
9*8+7*(6-5)*4
(9*8-7*6-5)*4
9*8+7/(6-5)*4
876543:
8*(7+6)-(5-4+3)
8*(7+6)-5+4-3
(8*(7*6-5)+4)/3
(8*(7+6*5)+4)/3


Сообщение отредактировал ZORRO2005 - Пятница, 06.07.2012, 22:39
 
Ответить
СообщениеПонял, исправляюсь:

345678:
(3+4-5)*(6*7+8)
3+(4+5+6)*7-8
987654:
9+(8+7)*6+5-4
(9+8+7+6-5)*4
9*8+7*(6-5)*4
(9*8-7*6-5)*4
9*8+7/(6-5)*4
876543:
8*(7+6)-(5-4+3)
8*(7+6)-5+4-3
(8*(7*6-5)+4)/3
(8*(7+6*5)+4)/3

Автор - ZORRO2005
Дата добавления - 06.07.2012 в 21:48
MCH Дата: Пятница, 06.07.2012, 22:45 | Сообщение № 7
Группа: Админы
Ранг: Старожил
Сообщений: 2004
Репутация: 752 ±
Замечаний: ±

по большому счету нет необходимости находить все решения для каждого отдельного числа, достаточно найти хотя бы одно
 
Ответить
Сообщениепо большому счету нет необходимости находить все решения для каждого отдельного числа, достаточно найти хотя бы одно

Автор - MCH
Дата добавления - 06.07.2012 в 22:45
MCH Дата: Понедельник, 09.07.2012, 08:52 | Сообщение № 8
Группа: Админы
Ранг: Старожил
Сообщений: 2004
Репутация: 752 ±
Замечаний: ±

Quote (ZORRO2005)
Понял, исправляюсь

Сергей, судя по сообщению у тебя есть решение?
Хотелось бы узнать, как решил? формулами, мокросами, макрофункциями. И как быстро производится расчет?

PS: данную задачу решал несколько лет назад, когда на VBA не мог еще ни строчки написать
Доступным для меня был тогда только QBasic, при этом не исползовал функцию Evaluate, т.к. ее там нет

Недавно реализовал решение на VBA, здесь значительно больше возможностей (Хотя с Evaluate расчет ведется в 10 раз медленнее).
Кроме того, сделал расчет чисто на формулах (использовал 5! * 4^5 формул), файл получился очень тяжелым но считает быстро.
А также вариант с помощью макрофункции ВЫЧЕСЛИТЬ() где нет необходимости прописывать все 122880 формул, обошелся только 120, файл при этом "весит" 20 кб, если интересно могу выложить.


Сообщение отредактировал MCH - Понедельник, 09.07.2012, 11:13
 
Ответить
Сообщение
Quote (ZORRO2005)
Понял, исправляюсь

Сергей, судя по сообщению у тебя есть решение?
Хотелось бы узнать, как решил? формулами, мокросами, макрофункциями. И как быстро производится расчет?

PS: данную задачу решал несколько лет назад, когда на VBA не мог еще ни строчки написать
Доступным для меня был тогда только QBasic, при этом не исползовал функцию Evaluate, т.к. ее там нет

Недавно реализовал решение на VBA, здесь значительно больше возможностей (Хотя с Evaluate расчет ведется в 10 раз медленнее).
Кроме того, сделал расчет чисто на формулах (использовал 5! * 4^5 формул), файл получился очень тяжелым но считает быстро.
А также вариант с помощью макрофункции ВЫЧЕСЛИТЬ() где нет необходимости прописывать все 122880 формул, обошелся только 120, файл при этом "весит" 20 кб, если интересно могу выложить.

Автор - MCH
Дата добавления - 09.07.2012 в 08:52
Serge_007 Дата: Понедельник, 09.07.2012, 10:24 | Сообщение № 9
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (MCH)
если интересно могу выложить

Интересно, выкладывай


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (MCH)
если интересно могу выложить

Интересно, выкладывай

Автор - Serge_007
Дата добавления - 09.07.2012 в 10:24
MCH Дата: Понедельник, 09.07.2012, 11:09 | Сообщение № 10
Группа: Админы
Ранг: Старожил
Сообщений: 2004
Репутация: 752 ±
Замечаний: ±

Quote (Serge_007)
Интересно, выкладывай

Число нужно вводить в ячейку A1
Расчет производится несколько секунд
К сообщению приложен файл: 100__2.xls (19.0 Kb)


Сообщение отредактировал MCH - Понедельник, 09.07.2012, 15:43
 
Ответить
Сообщение
Quote (Serge_007)
Интересно, выкладывай

Число нужно вводить в ячейку A1
Расчет производится несколько секунд

Автор - MCH
Дата добавления - 09.07.2012 в 11:09
Serge_007 Дата: Понедельник, 09.07.2012, 11:14 | Сообщение № 11
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (MCH)
Число нужно вводить в ячейку A1

Спс, прикольно


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (MCH)
Число нужно вводить в ячейку A1

Спс, прикольно

Автор - Serge_007
Дата добавления - 09.07.2012 в 11:14
ZORRO2005 Дата: Понедельник, 09.07.2012, 14:18 | Сообщение № 12
Группа: Друзья
Ранг: Обитатель
Сообщений: 382
Репутация: 148 ±
Замечаний: 0% ±

Excel2010
Решал формулами+ВЫЧИСЛИТЬ()+фильтры
Получилось 4^5*37 строк
Я посчитал, что может быть 37 вариантов расстановки скобок.
Если ошибся, напишите какой вариант упустил. Поправить - 2 мин.

Файл xls весит 36 MB.
В архиве 4 MB:
Билеты.rar.html
Пароль:ZORRO2005


Сообщение отредактировал ZORRO2005 - Понедельник, 09.07.2012, 15:03
 
Ответить
СообщениеРешал формулами+ВЫЧИСЛИТЬ()+фильтры
Получилось 4^5*37 строк
Я посчитал, что может быть 37 вариантов расстановки скобок.
Если ошибся, напишите какой вариант упустил. Поправить - 2 мин.

Файл xls весит 36 MB.
В архиве 4 MB:
Билеты.rar.html
Пароль:ZORRO2005

Автор - ZORRO2005
Дата добавления - 09.07.2012 в 14:18
ZORRO2005 Дата: Понедельник, 09.07.2012, 14:50 | Сообщение № 13
Группа: Друзья
Ранг: Обитатель
Сообщений: 382
Репутация: 148 ±
Замечаний: 0% ±

Excel2010
Quote (Serge_007)
Спс, прикольно

Я бы сказал "Круто!"
 
Ответить
Сообщение
Quote (Serge_007)
Спс, прикольно

Я бы сказал "Круто!"

Автор - ZORRO2005
Дата добавления - 09.07.2012 в 14:50
MCH Дата: Понедельник, 09.07.2012, 15:46 | Сообщение № 14
Группа: Админы
Ранг: Старожил
Сообщений: 2004
Репутация: 752 ±
Замечаний: ±

Quote (ZORRO2005)
Я посчитал, что может быть 37 вариантов расстановки скобок

Я посчитал что вариантов должно быть 120, исходя из количества престановок последовательности выполнения математических действий (5! = 120)
Проверил на уникальность расставленные скобки - плучилось 42.
Это значительно сокращает расчеты, почти в 3 раза.
Файл выше перезалил
 
Ответить
Сообщение
Quote (ZORRO2005)
Я посчитал, что может быть 37 вариантов расстановки скобок

Я посчитал что вариантов должно быть 120, исходя из количества престановок последовательности выполнения математических действий (5! = 120)
Проверил на уникальность расставленные скобки - плучилось 42.
Это значительно сокращает расчеты, почти в 3 раза.
Файл выше перезалил

Автор - MCH
Дата добавления - 09.07.2012 в 15:46
MCH Дата: Понедельник, 09.07.2012, 22:24 | Сообщение № 15
Группа: Админы
Ранг: Старожил
Сообщений: 2004
Репутация: 752 ±
Замечаний: ±

Quote (ZORRO2005)
Решал формулами+ВЫЧИСЛИТЬ()+фильтры

Интересное решение, но не все варианты ноходит.
Например число 164676 не нашло, хотя решение есть =(1-6)*((4-6)*7-6)

Сделал вариант на формулах без ВЫЧИСЛИТЬ(), работает очень быстро

PS: мне удолось найти 716270 таких чисел, т.е вероятность получить "счастливый" билет более 70%
Даю ссылку на текстовый файл с перечислением всех чисел (в архиве 4,26 МБ)
К сообщению приложен файл: 100__.xlsb (683.8 Kb)


Сообщение отредактировал MCH - Понедельник, 09.07.2012, 23:55
 
Ответить
Сообщение
Quote (ZORRO2005)
Решал формулами+ВЫЧИСЛИТЬ()+фильтры

Интересное решение, но не все варианты ноходит.
Например число 164676 не нашло, хотя решение есть =(1-6)*((4-6)*7-6)

Сделал вариант на формулах без ВЫЧИСЛИТЬ(), работает очень быстро

PS: мне удолось найти 716270 таких чисел, т.е вероятность получить "счастливый" билет более 70%
Даю ссылку на текстовый файл с перечислением всех чисел (в архиве 4,26 МБ)

Автор - MCH
Дата добавления - 09.07.2012 в 22:24
ZORRO2005 Дата: Вторник, 10.07.2012, 00:32 | Сообщение № 16
Группа: Друзья
Ранг: Обитатель
Сообщений: 382
Репутация: 148 ±
Замечаний: 0% ±

Excel2010
Quote (MCH)
Интересное решение, но не все варианты ноходит. Например число 164676 не нашло, хотя решение есть =(1-6)*((4-6)*7-6)

МСН, ты же понимаешь, что добавив еще 6 вариантов для скобок: 37+6-1(пустой) найдет все варианты.


Сообщение отредактировал ZORRO2005 - Вторник, 10.07.2012, 00:33
 
Ответить
Сообщение
Quote (MCH)
Интересное решение, но не все варианты ноходит. Например число 164676 не нашло, хотя решение есть =(1-6)*((4-6)*7-6)

МСН, ты же понимаешь, что добавив еще 6 вариантов для скобок: 37+6-1(пустой) найдет все варианты.

Автор - ZORRO2005
Дата добавления - 10.07.2012 в 00:32
MCH Дата: Вторник, 10.07.2012, 00:53 | Сообщение № 17
Группа: Админы
Ранг: Старожил
Сообщений: 2004
Репутация: 752 ±
Замечаний: ±

Quote (ZORRO2005)
МСН, ты же понимаешь, что добавив еще 6 вариантов для скобок: 37+6-1(пустой) найдет все варианты

Сергей, я не смог разобратся, как добавить в твоем файле дополнительные варианты растановок скобок, например тройные или четветные
 
Ответить
Сообщение
Quote (ZORRO2005)
МСН, ты же понимаешь, что добавив еще 6 вариантов для скобок: 37+6-1(пустой) найдет все варианты

Сергей, я не смог разобратся, как добавить в твоем файле дополнительные варианты растановок скобок, например тройные или четветные

Автор - MCH
Дата добавления - 10.07.2012 в 00:53
Userr-Lim Дата: Вторник, 04.12.2012, 13:35 | Сообщение № 18
Группа: Гости
55+55-(5+5)=100
 
Ответить
Сообщение55+55-(5+5)=100

Автор - Userr-Lim
Дата добавления - 04.12.2012 в 13:35
MCH Дата: Вторник, 22.02.2022, 08:10 | Сообщение № 19
Группа: Админы
Ранг: Старожил
Сообщений: 2004
Репутация: 752 ±
Замечаний: ±

Вариант решения для любого числа (от двухзначного до 8ми значного)
С любыми действиями (+, -, *, /)
В любой последовательности вычисления (приоритет действий определяется скобками)
С любой "склейкой" цифр (разделение числа не только на цифры, но и на числа / группы цифр)
Можно искать не только 100, но и любое другое число

Решение в Excel на VBA, без Evaluate
Для 8ми значных чисел решается за приемлемое время, девятизначные уже долго перебирает

PS: Почти 10 лет прошло
К сообщению приложен файл: 100-VBA.xls (50.5 Kb)
 
Ответить
СообщениеВариант решения для любого числа (от двухзначного до 8ми значного)
С любыми действиями (+, -, *, /)
В любой последовательности вычисления (приоритет действий определяется скобками)
С любой "склейкой" цифр (разделение числа не только на цифры, но и на числа / группы цифр)
Можно искать не только 100, но и любое другое число

Решение в Excel на VBA, без Evaluate
Для 8ми значных чисел решается за приемлемое время, девятизначные уже долго перебирает

PS: Почти 10 лет прошло

Автор - MCH
Дата добавления - 22.02.2022 в 08:10
bmv98rus Дата: Суббота, 26.02.2022, 08:41 | Сообщение № 20
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4127
Репутация: 769 ±
Замечаний: 0% ±

Excel 2013/2016
PS: Почти 10 лет прошло
уж и билеты то отменили почти везде :-)


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
Сообщение
PS: Почти 10 лет прошло
уж и билеты то отменили почти везде :-)

Автор - bmv98rus
Дата добавления - 26.02.2022 в 08:41
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!