How to create a equally distributed batting order for little league baseball team

1 次查看(过去 30 天)
I am trying to create a batting order for my little league team. I have 10 players. I am trying to create a batting order for the ten games where everyone will bat from 1 to 10 in the order. I have one solution where I just move everyone down one spot from the order in the first game, but I am trying to find a way to do this where the kids are not always following the same kids. Mixing it up where they are following different people.

采纳的回答

James Tursa
James Tursa 2021-11-6
编辑:James Tursa 2021-11-7
Start with a simple pattern that works, and then randperm both the rows and columns. E.g.,
B = zeros(10);
for k=1:10 % start with a simple pattern that works
B(k,:) = mod(k-1:k+8,10) + 1;
end
B = B(randperm(10),randperm(10)); % permute the rows and columns
Sample run:
>> batting_order
>> B
B =
4 6 2 10 7 3 8 5 9 1
3 5 1 9 6 2 7 4 8 10
10 2 8 6 3 9 4 1 5 7
6 8 4 2 9 5 10 7 1 3
5 7 3 1 8 4 9 6 10 2
7 9 5 3 10 6 1 8 2 4
2 4 10 8 5 1 6 3 7 9
1 3 9 7 4 10 5 2 6 8
8 10 6 4 1 7 2 9 3 5
9 1 7 5 2 8 3 10 4 6

更多回答(2 个)

Sulaymon Eshkabilov
Use randperm() to generate the orders, e.g.:
ORDER = randperm(10,10)
ORDER = 1×10
3 5 2 6 4 1 8 9 10 7

Sulaymon Eshkabilov
编辑:Sulaymon Eshkabilov 2021-11-5
Here is how it can be generated for 10 times within a loop:
for ii=1:10
A(ii,:) =randperm(10, 10);
end
  1 个评论
Jason Burke
Jason Burke 2021-11-5
编辑:Jason Burke 2021-11-5
I understand how to run the function 10 times, but I am looking to find a way that each number 1 to 10 lands in each order only once.
I am looking to not get something like below
1, 3, 5, 7, 9, 2, 4, 6, 8, 10
2, 1, 5, 3, 6, 7, 4, 10, 9, 8
I am trying to find a way so each number (1 to 10) lands in each spot (first to tenth) only once.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Video games 的更多信息

产品


版本

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by