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

4 visualizzazioni (ultimi 30 giorni)
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

Risposta accettata

Matt J
Matt J il 21 Apr 2022
Modificato: Matt J il 21 Apr 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

Più risposte (1)

Bruno Luong
Bruno Luong il 21 Apr 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

Categorie

Scopri di più su Mathematics in Help Center e File Exchange

Prodotti


Release

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by