10 Digit number puzzle of John Conway

1. scientes 289 08.12.22 14:31 Сейчас в теме
Оказалось, что с помощью запроса, который формирует перестановку цифр легко решить следующую задачу. С помощью всех цифр от 0 до 9 записать 10 значное число такое, что числа,образованные его последовательными левыми цифрами, делятся на длину числа.
То есть, если число имеет вид абвгдеёжзи,то
а делится на 1,
аб делится на 2,
абв делится на 3,
абвг делится на 4,
абвгд делится на 5,
абвгде делится на 6,
абвгдеё делится на 7,
абвгдеёж делится на 8,
абвгдеёжз делится на 9,
абвгдеёжзи делится на 10

Какие есть варианты ?
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Alexei_Siva 182 08.12.22 15:29 Сейчас в теме
Пример для 3-х цифр

ВЫБРАТЬ
	0 КАК Цифра
ПОМЕСТИТЬ ВТ_Цифры

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	1

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	2

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	3

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	4

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	5

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	6

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	7

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	8

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	9
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	100 * ВТ_Цифры.Цифра + 10 * ВТ_Цифры1.Цифра + 1 * ВТ_Цифры2.Цифра КАК Число,
	ВТ_Цифры.Цифра КАК Цифра0,
	ВТ_Цифры1.Цифра КАК Цифра1,
	ВТ_Цифры2.Цифра КАК Цифра2
ИЗ
	ВТ_Цифры КАК ВТ_Цифры
		ПОЛНОЕ СОЕДИНЕНИЕ ВТ_Цифры КАК ВТ_Цифры1
		ПО (ИСТИНА)
		ПОЛНОЕ СОЕДИНЕНИЕ ВТ_Цифры КАК ВТ_Цифры2
		ПО (ИСТИНА)
ГДЕ
	ВТ_Цифры.Цифра <> 0
	И (10 * ВТ_Цифры.Цифра + ВТ_Цифры1.Цифра) / 2 = (ВЫРАЗИТЬ((10 * ВТ_Цифры.Цифра + ВТ_Цифры1.Цифра) / 2 КАК ЧИСЛО(10, 0)))
	И (100 * ВТ_Цифры.Цифра + 10 * ВТ_Цифры1.Цифра + ВТ_Цифры2.Цифра) / 3 = (ВЫРАЗИТЬ((100 * ВТ_Цифры.Цифра + 10 * ВТ_Цифры1.Цифра + ВТ_Цифры2.Цифра) / 3 КАК ЧИСЛО(10, 0)))
Показать
Vitaly1C8; +1 Ответить
3. scientes 289 08.12.22 15:41 Сейчас в теме
(2) Цифры должны быть различные. В данном запросе, по-моему, это не проверяется.
5. Alexei_Siva 182 08.12.22 18:19 Сейчас в теме
(3)Так поставьте отбор ВТ_Цифры.Цифра <> ВТ_Цифры1.Цифра и ВТ_Цифры.Цифра <> ВТ_Цифры2.Цифра и ВТ_Цифры1.Цифра <> ВТ_Цифры2.Цифра)
4. user1863362 08.12.22 15:57 Сейчас в теме
Это ж сколько же интересного в интернете найти можно, с ума сойти!
6. scientes 289 11.12.22 18:07 Сейчас в теме
Приведу свой код.
Функция  ConwayDigitPuzzle() экспорт
            Текст="ВЫБРАТЬ
                  |	1 КАК Цифра
                  |ПОМЕСТИТЬ мРяд
                  |
                  |ОБЪЕДИНИТЬ ВСЕ
                  |
                  |ВЫБРАТЬ
                  |	2
                  |
                  |ОБЪЕДИНИТЬ ВСЕ
                  |
                  |ВЫБРАТЬ
                  |	3
                  |
                  |ОБЪЕДИНИТЬ ВСЕ
                  |
                  |ВЫБРАТЬ
                  |	4
                  |
                  |ОБЪЕДИНИТЬ ВСЕ
                  |
                  |ВЫБРАТЬ
                  |	5
                  |
                  |ОБЪЕДИНИТЬ ВСЕ
                  |
                  |ВЫБРАТЬ
                  |	6
                  |
                  |ОБЪЕДИНИТЬ ВСЕ
                  |
                  |ВЫБРАТЬ
                  |	7
                  |
                  |ОБЪЕДИНИТЬ ВСЕ
                  |
                  |ВЫБРАТЬ
                  |	8
                  |
                  |ОБЪЕДИНИТЬ ВСЕ
                  |
                  |ВЫБРАТЬ
                  |	9
                  |;
                  |
                  |////////////////////////////////////////////////////////////­////////////////////
                  |ВЫБРАТЬ
                  |	мРядЛев.Цифра КАК Цифра0,
                  |	мРядПрав.Цифра КАК Цифра1
                  |ПОМЕСТИТЬ мРяд2
                  |ИЗ
                  |	мРяд КАК мРядЛев,
                  |	мРяд КАК мРядПрав
                  |ГДЕ
                  |	мРядЛев.Цифра <> мРядПрав.Цифра
                  |;
                  |
                  |////////////////////////////////////////////////////////////­////////////////////
                  |ВЫБРАТЬ
                  |	мРядЛев.Цифра0 КАК Цифра0,
                  |	мРядЛев.Цифра1 КАК Цифра1,
                  |	мРядПрав.Цифра0 КАК Цифра2,
                  |	мРядПрав.Цифра1 КАК Цифра3
                  |ПОМЕСТИТЬ мРяд4
                  |ИЗ
                  |	мРяд2 КАК мРядЛев
                  |		ВНУТРЕННЕЕ СОЕДИНЕНИЕ мРяд2 КАК мРядПрав
                  |		ПО (НЕ мРядЛев.Цифра0 В (мРядПрав.Цифра0, мРядПрав.Цифра1))
                  |			И (НЕ мРядЛев.Цифра1 В (мРядПрав.Цифра0, мРядПрав.Цифра1))
                  |;
                  |
                  |////////////////////////////////////////////////////////////­////////////////////
                  |ВЫБРАТЬ
                  |	мРядЛев.Цифра0 КАК Цифра0,
                  |	мРядЛев.Цифра1 КАК Цифра1,
                  |	мРядЛев.Цифра2 КАК Цифра2,
                  |	мРядЛев.Цифра3 КАК Цифра3,
                  |	мРядПрав.Цифра0 КАК Цифра4,
                  |	мРядПрав.Цифра1 КАК Цифра5,
                  |	мРядПрав.Цифра2 КАК Цифра6,
                  |	мРядПрав.Цифра3 КАК Цифра7,
                  |	45 - (мРядПрав.Цифра0 + мРядПрав.Цифра1 + мРядПрав.Цифра2 + мРядПрав.Цифра3 + мРядЛев.Цифра0 + мРядЛев.Цифра1 + мРядЛев.Цифра2 + мРядЛев.Цифра3) КАК Цифра8
                  |ПОМЕСТИТЬ мРяд9
                  |ИЗ
                  |	мРяд4 КАК мРядЛев
                  |		ВНУТРЕННЕЕ СОЕДИНЕНИЕ мРяд4 КАК мРядПрав
                  |		ПО (НЕ мРядЛев.Цифра0 В (мРядПрав.Цифра0, мРядПрав.Цифра1, мРядПрав.Цифра2, мРядПрав.Цифра3))
                  |			И (НЕ мРядЛев.Цифра1 В (мРядПрав.Цифра0, мРядПрав.Цифра1, мРядПрав.Цифра2, мРядПрав.Цифра3))
                  |			И (НЕ мРядЛев.Цифра2 В (мРядПрав.Цифра0, мРядПрав.Цифра1, мРядПрав.Цифра2, мРядПрав.Цифра3))
                  |			И (НЕ мРядЛев.Цифра3 В (мРядПрав.Цифра0, мРядПрав.Цифра1, мРядПрав.Цифра2, мРядПрав.Цифра3))
                  |;
                  |
                  |////////////////////////////////////////////////////////////­////////////////////
                  |ВЫБРАТЬ
                  |	10 * мРяд9.Цифра0 + мРяд9.Цифра1 КАК Ч2,
                  |	10 * (10 * мРяд9.Цифра0 + мРяд9.Цифра1) + мРяд9.Цифра2 КАК Ч3,
                  |	10 * (10 * (10 * мРяд9.Цифра0 + мРяд9.Цифра1) + мРяд9.Цифра2) + мРяд9.Цифра3 КАК Ч4,
                  |	18 * (10 * (10 * (10 * мРяд9.Цифра0 + мРяд9.Цифра1) + мРяд9.Цифра2) + мРяд9.Цифра3) + мРяд9.Цифра4 КАК Ч5,
                  |	10 * (10 * (10 * (10 * (10 * мРяд9.Цифра0 + мРяд9.Цифра1) + мРяд9.Цифра2) + мРяд9.Цифра3) + мРяд9.Цифра4) + мРяд9.Цифра5 КАК Ч6,
                  |	10 * (10 * (10 * (10 * (10 * (10 * мРяд9.Цифра0 + мРяд9.Цифра1) + мРяд9.Цифра2) + мРяд9.Цифра3) + мРяд9.Цифра4) + мРяд9.Цифра5) + мРяд9.Цифра6 КАК Ч7,
                  |	10 * (10 * (10 * (10 * (10 * (10 * (10 * мРяд9.Цифра0 + мРяд9.Цифра1) + мРяд9.Цифра2) + мРяд9.Цифра3) + мРяд9.Цифра4) + мРяд9.Цифра5) + мРяд9.Цифра6) + мРяд9.Цифра7 КАК Ч8,
                  |	10 * (10 * (10 * (10 * (10 * (10 * (10 * (10 * мРяд9.Цифра0 + мРяд9.Цифра1) + мРяд9.Цифра2) + мРяд9.Цифра3) + мРяд9.Цифра4) + мРяд9.Цифра5) + мРяд9.Цифра6) + мРяд9.Цифра7) + мРяд9.Цифра8 КАК Ч9
                  |ПОМЕСТИТЬ мПервыйФильтр
                  |ИЗ
                  |	мРяд9 КАК мРяд9
                  |ГДЕ
                  |	мРяд9.Цифра4 = 5
                  |	И мРяд9.Цифра1 В (2, 4, 6, 8)
                  |	И мРяд9.Цифра3 В (2, 4, 6, 8)
                  |	И мРяд9.Цифра5 В (2, 4, 6, 8)
                  |	И мРяд9.Цифра7 В (2, 4, 6, 8)
                  |	И мРяд9.Цифра0 + мРяд9.Цифра1 + мРяд9.Цифра2 В (3, 6, 9, 12, 15, 18, 21, 24, 27)
                  |	И мРяд9.Цифра3 + мРяд9.Цифра4 + мРяд9.Цифра5 В (3, 6, 9, 12, 15, 18, 21, 24, 27)
                  |;
                  |
                  |////////////////////////////////////////////////////////////­////////////////////
                  |ВЫБРАТЬ
                  |	мПервыйФильтр.Ч2 КАК Ч2,
                  |	мПервыйФильтр.Ч3 КАК Ч3,
                  |	мПервыйФильтр.Ч4 КАК Ч4,
                  |	мПервыйФильтр.Ч5 КАК Ч5,
                  |	мПервыйФильтр.Ч6 КАК Ч6,
                  |	мПервыйФильтр.Ч7 КАК Ч7,
                  |	мПервыйФильтр.Ч8 КАК Ч8,
                  |	мПервыйФильтр.Ч9 КАК Ч9
                  |ИЗ
                  |	мПервыйФильтр КАК мПервыйФильтр
                  |ГДЕ
                  |	мПервыйФильтр.Ч4 = 4 * (ВЫРАЗИТЬ(мПервыйФильтр.Ч4 / 4 КАК ЧИСЛО(4, 0)))
                  |	И мПервыйФильтр.Ч7 = 7 * (ВЫРАЗИТЬ(мПервыйФильтр.Ч7 / 7 КАК ЧИСЛО(7, 0)))
                  |	И мПервыйФильтр.Ч8 = 8 * (ВЫРАЗИТЬ(мПервыйФильтр.Ч8 / 8 КАК ЧИСЛО(8, 0)))";

      
            

            запрос=новый запрос(Текст);
			Выборка=запрос.Выполнить().Выбрать();
			пока Выборка.Следующий() цикл
				сообщить(Выборка.Ч9*10);
			конеццикла;	
			
			
КонецФункции	
Показать
7. DENSKR 15 11.12.22 22:08 Сейчас в теме
(6) Вы тут по идее подсчитаете только Выборка.Ч9*10?
8. scientes 289 12.12.22 08:39 Сейчас в теме
(7) Да, число Ч9 обладает свойствами искомого числа, для делимости от 1 до 9. Ч9*10 делится на 10. Значит все условия задачи выполняются.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот