MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply Today**New to MATLAB?**

Given two numbers ** n** and

You can assume that: `0 < s < n`

**Example:**

Take `n=10` and `s=3`, here is a possible solution

M = 0 1 0 0 1 1 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 1 1 0 1 1 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 1 1 0 0 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 0

Note that the following conditions are all true:

all(sum(M,1)==3) % column sums equal to s all(sum(M,2)==3) % row sums equal to s all(diag(M)==0) % zeros on the diagonal islogical(M) % logical matrix ndims(M)==2 % 2D matrix all(size(M)==n) % square matrix

**Unscored bonus:**

Visualize the result as a graph where `M` represents the adjacency matrix:

% circular layout t = linspace(0, 2*pi, n+1)'; xy = [cos(t(1:end-1)) sin(t(1:end-1))]; subplot(121), spy(M) subplot(122), gplot(M, xy, '*-'), axis image

28 correct solutions
14 incorrect solutions

Last solution submitted on Oct 16, 2014

1 player likes this problem