i want to generate a matrix that the number in each row, colum contains 1-9,and not repeated.
my code always fall into no solution. here is my code.

orix = RandomSample[Range[1, 9]];
oriy = Join[{orix[[1]]}, 
   RandomSample[DeleteCases[Range[1, 9], orix[[1]]]]];
matrix = ConstantArray[0, {9, 9}];
matrix[[1]] = oriy;
matrix[[;; , 1]] = orix;
matrix // MatrixForm
Do[matrix[[x, y]] = 
  RandomChoice[
   Range[0, 9] /. 
    Thread[Flatten[{matrix[[x]], matrix[[;; , y]]}] -> Nothing]], {x, 
  2, 9}, {y, 2, 9}]; matrix // MatrixForm

bumped to the homepage by Community 2 days ago

This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.

Thanks mr Moo ,Namjoshi ,and mikado the eligible matrix is much more than i thought. we can get a example matrix by:

matrix = ConstantArray[0, {9, 9}];
k = RotateRight[Range[9], 1];
Do[k = RotateLeft[k, 1];matrix[[i]] = k, {i, 9}]
matrix // MatrixForm

the other matrix can be got by changing the position of two numbers forexample /.{1->9,9->1}

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.