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

1 view (last 30 days)
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.

Accepted Answer

James Tursa
James Tursa on 6 Nov 2021
Edited: James Tursa on 7 Nov 2021
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

More Answers (2)

Sulaymon Eshkabilov
Sulaymon Eshkabilov on 5 Nov 2021
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
  1 Comment
Jason Burke
Jason Burke on 5 Nov 2021
Thanks, but I do not see how I can use randperm 10 times and get a distribution where each number is in spots 1 to 10 only once.

Sign in to comment.


Sulaymon Eshkabilov
Sulaymon Eshkabilov on 5 Nov 2021
Edited: Sulaymon Eshkabilov on 5 Nov 2021
Here is how it can be generated for 10 times within a loop:
for ii=1:10
A(ii,:) =randperm(10, 10);
end
  1 Comment
Jason Burke
Jason Burke on 5 Nov 2021
Edited: Jason Burke on 5 Nov 2021
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.

Sign in to comment.

Categories

Find more on Video games in Help Center and File Exchange

Products


Release

R2019b

Community Treasure Hunt

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

Start Hunting!