Math problem giving me a headache, please advise!
Hello math folks
I need your help to help me solve a math trick, any advice is very appreciated
I have these numbers: 4 3 2 1.5 1 0.75 0.5 0.25
I need to create a coll that contains ALL the permutations of these numbers which the sum is always equal to 4
any idea for a quick patch or suggestion?
many thanks
For permutations I mean
4
3 1
1 3
2 2
2 1 1
1 2 1
1 1 2
1 1 1 1
0.5 1 1 1
1 0.5 1 1
1 1 0.5 1
1 1 1 0.5
and so on...
You used the word "permutation," but the example you gave is not a collection of permutations. A permutation is a reordering, so if your original sequence contains 8 elements, as yours does, every permutation will also contain 8 elements.
So I haven't a clue about what problem you're trying to solve. Before anyone can help you, you'll have to explain the problem accurately and completely.
you're right, I'll try to explain better.
I need to create a coll that contains all the possible lists (from 1 to 16 numbers) using (4 3 2 1.5 1 0.75 0.5 0.25)
in which total sum is 4
for example:
4
---
2 2
---
2 1 1
1 2 1
1 1 2
--
1.5 1 1.5
1 1.5 1.5
1.5 1.5 1.5
---
0.5 0.5 1 2
2 1 0.5 0.5
0.5 1 0.5 2
2 1 0.5 0.5
0.5 2 0.5 1
and so on
as you can see as the list grows I need also all the permutations
sorry for my english, not easy to talk of math in a foreign language
1.5 1 1.5
1 1.5 1.5
1.5 1.5 1
SORRY
I would concentrate my efforts on 2 individual problems:
1- Getting the different combinations of numbers, independently of the order of the elements in the list.
To that extent, you could use a high to low generation methodology. Here's an example to get to the number "3":
3
2 1
2 0.75 0.25
2 0.5 0.5
2 0.5 0.25 0.25
2 0.25 0.25 0.25 0.25
1.5 1.5
1.5 1 0.5
1.5 1 0.25 0.25
1.5 0.75 0.75
1.5 0.75 0.5 0.25
1.5 0.75 0.25 0.25 0.25
1.5 0.5 0.5 0.5
1.5 0.5 0.5 0.25 0.25
.......
2- Generate all possible permutations for each list created, maybe with the help of the [permute] object from http://www.essl.at/works/rtc.html
Disclaimer: I've never tried any of this... ;-)
Hi Pedro
yes that's what I'm doing.. I just hoped there was a faster method..
For permutations I'm using zl.permute
it is coming like this
4
3 1
3 0.75 0.25
3 0.5 0.5
3 0.5 0.25 0.25
3 0.25 0.25 0.25 0.25
2 2
2 1 1
2 1 0.75 0.25
2 1 0.5 0.5
2 1 0.5 0.25 0.25
2 1 0.25 0.25 0.25 0.25
2 1.5 0.5
2 1.5 0.25 0.25
2 0.75 0.25 0.75 0.25
2 0.5 0.5 0.5 0.5
2 0.5 0.25 0.25 0.5 0.25 0.25
2 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25
1.5 1.5 1 0.75 0.25
1.5 1.5 0.5 0.5
1.5 1.5 0.5 0.25 0.25
1.5 1.5 0.25 0.25 0.25 0.25
and so on...
sorry zl.scramble
Great patch, nicolas! Simple and efficient.