2016-02-29 2 views
3

Мне нужна помощь с алгоритмом, который создает все латинские квадраты до n = 10. Я в том, что когда я создал n! Латинские квадраты, и я попытался переставить строки и столбцы впоследствии, поэтому он дал мне n! * N! * N! Латинские квадраты, но согласно wikipedia (https://en.wikipedia.org/wiki/Latin_square) это расширение n! Латинские квадраты ошибочны. Разве никто не знает, как получить все возможные латинские квадраты?Алгоритм, который создает все возможные латинские квадраты

ответ

2

Ваши усилия, увы, обречены. Мы до сих пор не знаем формулы для вычисления количества латинских квадратов размером n. Тем не менее, кто-то бедная душа сделала это для n=10. В то время генерации квадратов возможно (вы всегда можете просто создать все возможности, и посмотреть, если они латинский квадрат), вы собираетесь получить

9,982,437,658,213,039,871,725,064,756,920,320,000 

ответов (Wikipedia).

Итак, надеюсь, у вас большой жесткий диск и много времени.

+0

Я сформулировал свой вопрос немного неправильно. Мы пытаемся написать алгоритм, который может создавать как можно больше латинских квадратов. Латинский квадрат имеет сторону n = 1,2, ... 10. Для n = 6 число не так велико (согласно листу по википедии) – prone666

+0

@ prone666: Что вы подразумеваете под «как можно большим количеством латинских квадратов» - в какое-то определенное время? Вы также можете увидеть это: http://math.stackexchange.com/questions/145228/formula-for-the-number-of-latin-squares-of-size-n – gilleain

+0

Лучше проверить это тоже http: // math .stackexchange.com/вопросы/63131/порождающее-случайные латинские квадраты – cpicanco