Loading...
arnold avatar arnold 50 Точки

Спецефична логическа задача

Здравейте, според вас този тип задача може ли да се направи на програма, как да подходя, изисква ли по-специфичен алгоритъм, не съм решавал задачи с от курса за алгоритми и може ли да се реши според вас без конкретен алгоритъм, ще се радвам на всяка насока.

 

Задачата:

 Да се намери най-късият стринг(последователност от цифри), който съдържа всички комбинации от 4 цифри от 0000 до 9999! Да се докаже, че няма по-кратък!

Тагове:
1
Структури от данни и алгоритми 07/06/2023 21:32:19
arnold avatar arnold 50 Точки

https://pastebin.com/1QRspaiS

 

Това успях да измисля като код, ако някой има идея за по-оптимално решение, мисля че такава доказвам най-късия възможен стринг

2
MartinBG avatar MartinBG 4803 Точки

Това решение не дава най-късият стринг, защото в него има повторения.

Ако погледнем комбинацията от 4 нули "0000", предложеното решение ще генерира тази последователност 4 пъти пъти в самото начало:

1. "000000010002...."

2. "000000010002...."

3. "000000010002...."

4. "000000010002...."

2
arnold avatar arnold 50 Точки

Прав си. благодаря, аз просто въртя през всички комбинации без никакви проверки за повторения. Сега пък измислих нещо друго, с тази допълнителна проверка, премахва повторенията от стринга на комбинация и достигнах до най-къс стриг от 10124.

https://pastebin.com/sqhi7hDp

За друг вариант явно не се сещам, явно трябва да изчета някоя книга за алгоритми от онези по 1000 страници, направо затъпях 

2
12/06/2023 11:22:22
MartinBG avatar MartinBG 4803 Точки

Това е решение ще премахне част от повторенията, но не всички.

Например, за първите 2 числа ще генерира:

00000001 вместо 00001

Ще има и подобни повторения:

00080009 .... 899990009001

2
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.