Mam problem do rozwiązania:
potrzebuję funkcji która wygeneruje mi 2 wymiarową tablicę n * m gdzie:
- każda komórka tablicy może posiadac dwa stany: 1 - jest klocek, 2 - nie ma klocka
- ilość klocków w całej tablicy powinna być dokladnie ustalona
- ilość kolocków w każdej kolumnie powinna być dobierana losowo z zakresu 0 - n uwzględniając warunek drugi
- ilość kolocków w każdym wierszu powinna być dobierana losowo z zakresu 0 - m uwzględniając warunek drugi
- klocki w poszczególnych wierszach i kolumnach powinny bezpośrednio ze sobą sąsiadować tworząc w ten sposób jedną albo dwie (oddzielone od siebie dowolną ilością zer) grupy klocków
W takich przypadkach zawsze można zrobić to algorytmem brute force, ale niestety i tutaj jest on do tego zbyt wolny. Ma ktoś jakis pomysł?