Hello Folks,
With regards to math and algorithms in general, you are the only minds I could think of that could help me solve this problem I've been battling with for the past two days. Your help will be very much appreciated. So here it goes.
The Question is I can have a series of numbers consisting of N number of sixes and a single other number between one and five. I have X number of individuals over which i can distribute the series of numbers.
So for instance X1 can take B number of sixes and 1 other integer and X2 can take C number of sixes such that B+C+ (1 other integer) will exhaust the series. In other words any number of X over which the distribution is done over must completely exhaust the series.
The purpose of the algorithm I want is to find out all the possible ways of distributing N sixes and 1 other integer over X number of individuals such that any number of X over which the distribution is done completely exhaust the series.
I hope I've explained the problem clearly enough?
I would also appreciate it if this addition could be made to the algorithm: the distributions may be done over any X individual in either negative bias or positive bias. so for instance X1 may take B number of -(sixes) and 1 -(other number) and X2 can take C number of sixes such that it completely exhausts the series thus if I have a series of 3 sixes and two to distribute over four individuals i can have the following distributions:
Distribution:1
X1:{6,6,6,1}
X2:
X3:
X4:
or
Distribution:2
X1:-{6,6,6,1}
X2:
X3:
X4:
or
Distribution:3
X1:{6,6}
X2:-{6,1}
X3:
X4:
or
Distribution:4
X1:{6,1}
X2:-{6}
X3:{1}
X4:
and so on!
Note:
X1:6,6,6,1=X1:6,1,6,6 = X1:1,6,6,6 and so on...
Well that's it. one way I thought of doing this was to do the math and find out the number of possible ways to do the distribution and then randomly generate some possible ways such that each newly generated pattern does not match a previously generated pattern of distribution, until the number of generated patterns equals the number of possible ways but of course this would take forever to complete and will be come very inefficient as the number of pattern grows!
The algorithms can be written in pseudo code or presented in a flow chart but languages such as java, c#, or basic are also welcome. c# is most preferred as this is the language I'm working in
So as to the question why I'm doing this, If you haven't already guessed
I want to find out all the possible moves a player can make with any of his/her active pieces in a ludo game.
So If there's is a more efficient way of doing it other than the algorithm I stated above, Please share