Create a matrix where every row adds to a number and within the matrix represents every possibility of the row combinations

4 visualizaciones (últimos 30 días)
Hi,
I am looking to make a matix with "n" columns and have each row add up to "k" which is a positive interger. The number of rows will be dictated by the requirement that every combination of possible rows is included in the matrix. If I use n=4 and k=3, it takes 20 rows to include every combination of rows where each adds up to k=3. Example matrix below:
I'm hoping to write some code that will take arbitrary values of n and k and output such a matrix.
3 0 0 0
2 1 0 0
2 0 1 0
2 0 0 1
1 2 0 0
1 1 1 0
1 1 0 1
1 0 2 0
1 0 1 1
1 0 0 2
0 3 0 0
0 2 1 0
0 2 0 1
0 1 2 0
0 1 1 1
0 1 0 2
0 0 3 0
0 0 2 1
0 0 1 2
0 0 0 3

Respuesta aceptada

Matt J
Matt J el 21 de Abr. de 2022
Editada: Matt J el 21 de Abr. de 2022
See attached.
n=4;k=3;
diophantine(ones(1,n),k,0:k)
ans = 20×4
3 0 0 0 2 1 0 0 1 2 0 0 0 3 0 0 2 0 1 0 1 1 1 0 0 2 1 0 1 0 2 0 0 1 2 0 0 0 3 0

Más respuestas (1)

Bruno Luong
Bruno Luong el 21 de Abr. de 2022
A non recursive engine AllVL1 in FEX
>> allVL1(4,3)
ans =
0 0 0 3
0 0 1 2
0 0 2 1
0 0 3 0
0 1 0 2
0 1 1 1
0 1 2 0
0 2 0 1
0 2 1 0
0 3 0 0
1 0 0 2
1 0 1 1
1 0 2 0
1 1 0 1
1 1 1 0
1 2 0 0
2 0 0 1
2 0 1 0
2 1 0 0
3 0 0 0

Categorías

Más información sobre Mathematics en Help Center y File Exchange.

Productos


Versión

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by