Anatoly Vorobey (avva) wrote,
Anatoly Vorobey
avva

Category:

код для кубиков

Взял со стола у сослуживца головоломку на составление куба 3x3x3 из семи частей. Позже прочитал, что она знаменита, но как-то мне не приходилось решать раньше. Долго тупил и не мог составить.



Наконец это меня так разозлило, что написал сегодня код, который находит решение.

Если кому-то интересно, вот он. Около 50 строк. Если вы программист, то перед чтением кода подумайте несколько минут о том, как бы вы сами такое написали, составьте хотя бы в уме план. Если вы знаете, как это сделать заметно короче и/или элегантнее, чем у меня, расскажите, мне любопытно. У меня получилось заметно проще, чем то, как думал вначале сделать (хранить фигуры как множества из 3 или 4 трехмерных точек, получать варианты вращением и двигать туда-сюда, пересекая с целочисленной решеткой точек куба), но не то чтобы нравится.

P.S. Он находит все решения, включая повороты и отражения; при желании можно додавить, чтобы находил только уникальные, но мне уже лень было.
Tags: задачки, программирование
Subscribe
  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 25 comments