Como criar uma matriz simétrica de 1 e 0 com soma constante de linhas e colunas

Estou tentando encontrar um algoritmo elegante para criar uma matriz N x N de 1 e 0, sob as restrições:

cada linha e cada coluna deve somar a Q (para ser escolhido livremente)a diagonal deve ser 0a matriz deve ser simétrica.

Não é estritamente necessário que a matriz seja aleatória (no entanto, soluções aleatórias e não aleatórias são interessantes); portanto, para Q uniforme, basta fazer de cada linha um deslocamento circular do vetor

[0 1 1 0 ... 0 0 0 ... 0 1 1] (para Q = 4)

é uma solução válida.

No entanto, como fazer isso para Q estranho? Ou como fazer isso pelo Q mesmo, mas de maneira aleatória?

Para os curiosos, estou tentando testar alguns fenômenos em redes abstratas.

Peço desculpas se isso já foi respondido antes, mas nenhuma das perguntas que pude encontrar teve a restrição simétrica, o que parece torná-la muito mais complicada. Não tenho prova de que essa matriz sempre exista, mas presumo que sim.

questionAnswers(2)

yourAnswerToTheQuestion