timeit

Програмиране с Python

Курс във Факултета по Математика и Информатика към СУ

Трето предизвикателство

  1. Здравейте!

    Доколкото разбирам искате да имплементираме генератор, който връща итеруемо, на което като приложим next(), да връща всеки път различна дъска, която се получава от предишната върната дъска по правилата на играта. И така до изчерпване на количествата. А какво се има предвид под изчерпване на количествата? Докато не получим правилната наредба на дъската ли? Ако е така, то реално искате да напишем генератор, който решава тази игра, т.е връща редица от ходове, които водят до правилната наредба на дъската.

    Правилно ли ви разбирам?

  2. Здравейте,

    @Веселин Не съвсем. Например ако отвориш http://mypuzzle.org/sliding и натиснеш "Restart Puzzle" ще ти се генерира нова дъска. Силно се съмнявам тя да зависи от предишната.

    На дъска nхn, имате X възможни подредби. Не всички от тях могат да бъдат доведени до решение. Генератора трябва да връща винаги различна дъска и винаги възможна за подредба. Те са краен брой -> имаме изчерпване на количеството.

    @Теодор Да, трябва. Трябва също така да са представени в точно описания в задачата формат.

  3. Нe разбирам защо кодът ми не работи

    https://gist.github.com/anonymous/666e9e173fa3b93bb6731b688955a45e

    Като заменя на 39ти ред solvable с True си принти дъските както трябва - подред, всички възможни. Не мога да си намеря грешка и във функцията solvable, приложих същата формула, която пишеше в статията ... Хелп?

  4. @Симеон solvable функцията изглежда наред. if solvable(board, size) всеки път проверява дали board е валидна дъска, но board не се променя и е винаги [0, 1, 2, ...]. Мисля, че искаш този if да проверява дали текущата пермутация е решима т.е. да стане на if solvable(perm, size). В случая else-а е излишен. Ако пермутацията не е решима, генераторът продължава със следващата (ако има такава). Не би трябвало да връща None, но това може би е било с цел дебъгване?

Трябва да сте влезли в системата, за да може да отговаряте на теми.