Friday, December 5, 2008

<

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

The MU puzzle is a good example of a logical problem where determining an invariant is useful. The puzzle:
1. If a string ends with an I, a U may be appended (xI → xIU)
2. Any string after an M may be completely duplicated (Mx → Mxx)
3. Any three consecutive Is (III) may be replaced with a single U (xIIIy → xUy)
4. And two consecutive Us may be removed (xUUy → xy)

Is it possible to convert MI into MU using these four transformation rules only?

а? слабо? я-то ответ немедленно подсмотрел, конечно.

No comments: