Pages:
Author

Topic: 0.30 btc bounty: maths help (statistics) (Read 14140 times)

kjj
legendary
Activity: 1302
Merit: 1024
November 02, 2012, 02:55:44 PM
#24
Sorry for resurrecting this ancient thread, but I figure it is already in obsolete, so no one will care.

For some reason, I started thinking about this again.  I had forgotten the part about the Stirling numbers, but I had the "well, duh!" moment when I realized that 6^12 is only about 2 billion, and I might maybe be able to find some sort of computing device capable of iterating all of the combinations.

Code:
  2176782336 Random Diff Stirling Diff
0   13284630 0.6103% 0.61% -0.0016% 0.6103% 0.0000%
1  126669960 5.8191% 5.82% -0.0028% 5.8191% 0.0000%
2  464554980 21.3414% 21.33% 0.0081% 21.3414% 0.0000%
3  793379400 36.4473% 36.43% 0.0213% 36.4473% 0.0000%
4  605093850 27.7976% 27.80% 0.0010% 27.7976% 0.0000%
5  164951280 7.5778% 7.60% -0.0232% 7.5778% 0.0000%
6    8848236 0.4065% 0.41% -0.0028% 0.4065% 0.0000%
newbie
Activity: 10
Merit: 0
sorry i thought someone who is familiar with this kind of thing might be able to do it easily. i certainly didn't expect it to take 5 hours for the right person (although i admit it might take me 5 weeks to work it out).
sr. member
Activity: 416
Merit: 277
You can check your solution against these exact answers:

0_      738035/120932352
1_      586435/10077696
2_      4301435/20155392
3_      33057475/90699264
4_      33616325/120932352
5_      1145495/15116544
6_      737353/181398528

I don't think it's a particularly easy problem.
An exact formula for the probability of no matches is

6^-12 * Sum_{k=1..6}(6-k)^6 * C(6,k) * Sum_{j=0..k} (-1)^(k-j) * C(k,j) * j^n

where C(a,b)=a!/(b!*(a-b)!)

but this is a simpler case than the other numbers of matches.

Possibly proper mathematicians have more powerful tools to bring to bear on such problems.

Explaining even this simple formula would take quite a lot of work but if you're willing to crack open a maths book then "Stirling numbers of the second kind" would be a good place to start.

ByteCoin
full member
Activity: 210
Merit: 100
firstbits: 121vnq
hours to work out? Come on people this is a permutations 101 question.

newbie
Activity: 26
Merit: 0
thank you kjj, should i send to your signature address or a different one?

also, for a bonus 0.05, what's the chance that there are no matches?

thanks

edit: i ran the numbers with a lot of data from random.org and after 5831 tries, i got the following ratios, which disagree quite a lot with your figures:

matches   count(matches)   (count(matches)/5831*100)
0   37   0.6345
1   359   6.1567
2   1222   20.9570
3   2099   35.9973
4   1676   28.7429
5   417   7.1514
6   21   0.3601
I wrote a python code to get a better random sampling that just 5831 iterations.
Code:
from __future__ import division
import random

pairs = [0]*7
iterations = 1000000
for iter in range(iterations):
    list = [ [random.randint(1,6) for i in range(6)] for j in 0,1]

    equalList = [ [a==b for b in list[1]] for a in list[0] ]

    equalCount = 0
    truePos = []
    for el in equalList:
if len(truePos)>0:
            for pos in truePos:
el[pos] = False
        if any(el):
            equalCount += 1
            truePos.append( el.index(True) )

    pairs[equalCount] += 1

pct = [str(round(pair/iterations*100,4)) for pair in pairs]
print pct
After running for 1 million iterations it produced the following percents:
matches      count(matches)/1000000*100
0            0.6119
1            5.8219
2            21.3333
3            36.4260
4            27.7966
5            7.6010
6            0.4093

Hopefully this gives us a good check of the solutions we produce.

I'm working on the exact solution now. If you increased the bounty I'd be more inclined to work on it. It may take hours to work out; $6 is great for a 5 minute problem, but for a 5 hr problem it is less attractive.
newbie
Activity: 10
Merit: 0
unfortunately, my spec hasn't really been satisfied yet:

For each correct answer with detailed workings

there's no particular real world example yet, although the dice are a good example IF the number is 6, or i suppose you could think of a 9-sided dice if you wanted to work with 9 numbers.

but this knowledge would be handy for many different purposes and i'm a bit sad that i don't remember any of this stuff from school. i'd like to try to get my head around the math again without resorting to buying some old books and studying it for months. combinations and permutations.
sr. member
Activity: 416
Merit: 277

thank you bytecoin that is very close to the random data.
to pay the bounty though, i must see how you arrived at your final numbers. did you use a formula or did you write out numbers on a page 46000 times? Smiley

Essentially the latter. Do I get the money now?

doing that would assume 'hard-coding' of the number of product variations (6), which i'd rather avoid.
Is this a real world problem you're trying to solve? What is the range of the "product variations" and how much do you care (in BTC)  about an exact answer?

ByteCoin
newbie
Activity: 10
Merit: 0
it'll just be a binomial distribution.

i wish i remembered from school what that meant.
newbie
Activity: 10
Merit: 0
matches   count(matches)   (count(matches)/5831*100)
0   37   0.6345
1   359   6.1567
2   1222   20.9570
3   2099   35.9973
4   1676   28.7429
5   417   7.1514
6   21   0.3601

I have solved the problem but the method would be tedious by hand. If it's an academic problem then there's a better way than mine.
No pairs   1 pair   2 pairs   3 pairs   4 pairs   5 pairs   6 pairs
0.61%   5.82%   21.34%   36.45%   27.80%   7.58%   0.41%

kjj's method cannot succeed. If one party chooses 123456 then we must have at least one match whereas if one party chooses 111111 then there's about 1/3 chance of no matches.

This thread should probably be moved to Bitcoin Forum > Economy > Marketplace > Buying

ByteCoin

thank you bytecoin that is very close to the random data.
to pay the bounty though, i must see how you arrived at your final numbers. did you use a formula or did you write out numbers on a page 46000 times? Smiley

i suppose instead of random data i could populate my test table with exactly 1 instance of every combo (46656*46656 records?) and then count the matches, but doing that would assume 'hard-coding' of the number of product variations (6), which i'd rather avoid.

kjj
legendary
Activity: 1302
Merit: 1024
Ahh, good point.

If order doesn't matter, I'm pretty sure it'll just be a binomial distribution.
sr. member
Activity: 416
Merit: 277
matches   count(matches)   (count(matches)/5831*100)
0   37   0.6345
1   359   6.1567
2   1222   20.9570
3   2099   35.9973
4   1676   28.7429
5   417   7.1514
6   21   0.3601

I have solved the problem but the method would be tedious by hand. If it's an academic problem then there's a better way than mine.
No pairs   1 pair   2 pairs   3 pairs   4 pairs   5 pairs   6 pairs
0.61%   5.82%   21.34%   36.45%   27.80%   7.58%   0.41%

kjj's method cannot succeed. If one party chooses 123456 then we must have at least one match whereas if one party chooses 111111 then there's about 1/3 chance of no matches.

This thread should probably be moved to Bitcoin Forum > Economy > Marketplace > Buying

ByteCoin
newbie
Activity: 10
Merit: 0
yes he is assuming that the numbers have to be in the exact same order. hence the statement (only 1 out of all possible lists matches the other list 6 times). Numbers can match up in any order.

Thank you for spotting this, I couldn't figure out why his numbers were so different.
full member
Activity: 210
Merit: 100
firstbits: 121vnq
yes he is assuming that the numbers have to be in the exact same order. hence the statement (only 1 out of all possible lists matches the other list 6 times). Numbers can match up in any order.
newbie
Activity: 10
Merit: 0
The chance of no matches is what's left, 38880 out of 46656 (6^5 in 6^6) or ~ 83.333%.

Either your simulation, or your description of the problem is wrong, they don't match.

or your interpretation of my description Smiley

it seems extremely unlikely to me given the description, that 0 matches would occur 83% of the time.

here's a few example rows from the data:

[6,3,6,6,3,4] + [6,3,4,3,6,6] = 6 matches
[1,5,2,6,1,5] + [2,3,5,6,5,1] = 5 matches
[4,2,1,1,5,6] + [1,5,3,3,3,1] = 3 matches
[5,6,3,5,5,1] + [1,2,5,4,3,2] = 3 matches
[4,2,5,2,6,6] + [2,1,1,1,1,3] = 1 match
[3,5,5,4,4,5] + [1,1,6,1,6,2] = 0 matches

i can use random.org all day long but i'd much rather find out the actual mathematical formula.

edit: here's some more...

[1,5,2,6,1,5] + [2,3,5,6,5,1] = 5
[4,2,1,1,5,6] + [1,5,3,3,3,1] = 3
[5,6,3,5,5,1] + [1,2,5,4,3,2] = 3
[5,2,6,2,4,1] + [2,5,5,4,3,6] = 4
[1,2,2,5,6,2] + [1,4,3,6,5,6] = 3
[5,6,3,2,2,4] + [1,3,5,3,2,2] = 4
[2,4,3,6,4,1] + [1,5,2,2,2,6] = 3
[3,1,4,3,1,1] + [5,4,1,4,6,2] = 2
[6,3,3,1,3,3] + [4,1,5,6,1,4] = 2
[3,5,1,2,1,1] + [6,4,3,5,2,2] = 3
[5,4,6,3,2,5] + [4,4,3,3,2,1] = 3
[4,6,4,2,4,5] + [3,3,2,1,5,3] = 2
[4,2,5,2,6,6] + [2,1,1,1,1,3] = 1
[1,4,1,1,6,5] + [5,1,1,1,3,3] = 4
[2,2,6,4,4,1] + [1,6,5,3,2,6] = 3
[2,4,5,4,4,3] + [2,4,4,6,2,4] = 4
[3,3,1,5,3,3] + [2,3,2,5,5,6] = 2
[1,1,3,2,2,6] + [6,4,1,3,2,4] = 4
[5,1,2,6,2,1] + [4,6,2,3,3,6] = 2
[6,6,5,2,3,6] + [2,5,5,3,5,2] = 3
[2,1,6,4,2,4] + [4,1,2,6,5,4] = 5
[1,2,5,2,6,1] + [3,5,3,3,2,3] = 2
[3,5,5,5,5,6] + [5,6,6,6,5,1] = 3
[5,2,3,2,4,4] + [4,5,4,1,1,1] = 3
[6,1,5,2,1,4] + [3,3,5,3,3,2] = 2
[1,2,5,6,4,1] + [2,2,5,1,4,3] = 4
[6,2,6,2,3,6] + [3,6,3,1,2,3] = 3
[3,4,2,6,5,1] + [2,6,4,6,6,4] = 3
[6,6,2,2,6,4] + [2,5,5,4,4,3] = 2
[5,4,6,1,4,3] + [6,2,5,3,5,1] = 4
[3,2,4,5,2,2] + [1,5,6,6,3,4] = 3
[1,3,4,1,2,3] + [6,2,6,6,1,4] = 3
[4,1,4,5,4,3] + [5,4,4,6,1,6] = 4
[4,2,4,6,4,5] + [3,2,4,4,6,1] = 4
[6,3,4,6,2,3] + [3,5,1,2,3,4] = 4
[3,5,5,4,4,5] + [1,1,6,1,6,2] = 0
[3,5,1,4,6,1] + [2,3,2,4,3,2] = 2
[6,6,6,4,6,3] + [4,5,6,6,5,6] = 4
[3,2,3,3,6,4] + [3,2,5,6,5,5] = 3
[5,2,6,1,1,1] + [5,6,3,4,3,3] = 2
[3,1,6,6,5,4] + [1,1,1,3,4,5] = 4
[6,5,2,1,2,3] + [6,1,4,1,3,2] = 4
[5,3,4,3,4,4] + [6,6,1,2,5,2] = 1
[5,5,3,4,1,6] + [2,1,1,2,3,2] = 2
[6,5,5,5,1,6] + [4,3,3,6,5,5] = 3
[5,4,3,6,4,2] + [3,2,1,2,1,5] = 3
[2,3,5,1,1,6] + [6,4,5,6,3,2] = 4
[4,6,1,2,6,1] + [2,1,4,4,2,2] = 3
[3,3,1,3,4,1] + [1,4,6,5,4,6] = 2
[4,2,3,5,3,2] + [6,4,4,5,4,6] = 2
[5,2,4,1,6,1] + [6,1,1,2,2,4] = 5
[6,3,4,4,5,5] + [4,2,3,1,4,2] = 3
[5,1,1,1,2,1] + [5,4,6,1,6,5] = 2
[3,4,2,5,4,3] + [4,1,2,3,6,2] = 3
[5,1,5,1,6,3] + [2,1,5,5,5,6] = 4
[6,5,4,3,3,4] + [5,3,4,1,4,1] = 4
[1,3,1,6,6,3] + [1,1,1,4,4,1] = 2
[4,3,4,4,1,2] + [3,6,1,6,1,3] = 2
[5,5,1,1,6,1] + [2,1,1,4,1,2] = 3
[3,6,1,5,1,6] + [2,6,2,6,2,3] = 3
[6,3,5,6,4,5] + [3,1,3,3,1,3] = 1
[6,3,4,3,2,4] + [4,4,4,4,1,3] = 3
[4,2,3,3,5,1] + [5,2,4,6,2,3] = 4
[5,2,1,5,4,2] + [4,3,2,4,6,4] = 2
[6,4,4,3,3,4] + [2,5,4,1,4,5] = 2
[4,2,3,1,4,1] + [1,2,3,5,2,3] = 3
[1,2,4,1,3,3] + [1,6,2,2,3,6] = 3
[1,5,6,5,3,3] + [5,6,5,5,1,4] = 4
[4,5,5,6,1,5] + [4,2,6,4,2,1] = 3
[4,5,3,2,6,6] + [5,4,1,1,6,2] = 4
[1,2,2,5,4,6] + [3,6,2,5,2,1] = 5
[1,2,4,1,5,3] + [3,4,4,1,4,5] = 4
[5,2,5,5,2,1] + [6,2,1,4,3,4] = 2
[4,3,4,1,4,5] + [4,1,3,3,2,1] = 3
[3,1,2,3,2,1] + [1,2,4,1,1,1] = 3
[6,4,5,1,6,4] + [2,6,3,4,5,3] = 3
[4,1,3,5,6,2] + [5,3,1,4,5,4] = 4
[5,5,5,4,4,2] + [5,2,3,3,1,2] = 2
[4,1,5,1,2,5] + [1,5,2,4,4,4] = 4
[5,2,5,2,5,4] + [5,2,5,1,1,5] = 4
[4,3,5,3,4,3] + [1,3,3,4,5,2] = 4
[2,2,4,4,4,4] + [4,2,4,5,6,2] = 4
[4,6,5,3,2,4] + [5,4,5,5,4,6] = 4
[2,1,2,1,2,5] + [4,4,5,1,1,3] = 3
[1,4,6,6,3,6] + [6,5,4,1,4,3] = 4
[5,3,6,2,1,4] + [4,1,6,1,1,6] = 3
[3,2,3,6,3,2] + [6,5,5,4,3,4] = 2
[3,1,5,2,1,1] + [4,3,5,2,2,2] = 3
[4,5,6,2,5,3] + [2,5,4,2,1,3] = 4
[6,6,6,1,4,2] + [2,4,4,5,6,3] = 3
kjj
legendary
Activity: 1302
Merit: 1024
The chance of no matches is what's left, 38880 out of 46656 (6^5 in 6^6) or ~ 83.333%.

Either your simulation, or your description of the problem is wrong, they don't match.
newbie
Activity: 10
Merit: 0
thank you kjj, should i send to your signature address or a different one?

also, for a bonus 0.05, what's the chance that there are no matches?

thanks

edit: i ran the numbers with a lot of data from random.org and after 5831 tries, i got the following ratios, which disagree quite a lot with your figures:

matches   count(matches)   (count(matches)/5831*100)
0   37   0.6345
1   359   6.1567
2   1222   20.9570
3   2099   35.9973
4   1676   28.7429
5   417   7.1514
6   21   0.3601
kjj
legendary
Activity: 1302
Merit: 1024
There are 6^6 possible lists for each party.  The second party's list doesn't matter at all.

6^6 = 46656.

One of the lists matches all six in the second list, so that chance is 1 in 6^6 or 1 in 46656 or ~ 0.0021433%.

Six (6^1) of the lists match in at least 5 places, but one was the answer above, so 5 in 46656 or ~ 0.010716%

Thirty six (6^2) of the lists match in at least 4 places, but 5 matched in 5 places, and 1 matched in six, so 30 in 46656 or ~ 0.0643%

Two hundred sixteen (6^3) of the lists match in at least 3 places, but 36 matched more, so 180 in 46656 or ~ 0.3858%

1296 (6^4) of the lists match in at least 2 places, but 216 already matched, so 1080 in 46656 or ~ 2.314%

7776 (6^5) of the lists match in at least 1 place, but 1296 have already matched, so 6480 in 46656 or ~ 13.88889%

I hope that better explains where all the minuses came from in my first post.
full member
Activity: 138
Merit: 100
also why is this in development section?

sorry i don't know where it needs to go

I'd post this in the market place, under the buying subforum, since you're spending bitcoins for a service.
newbie
Activity: 10
Merit: 0
also why is this in development section?

sorry i don't know where it needs to go
newbie
Activity: 10
Merit: 0
In question 6, for example, would lists A1,A1,A1,A1,A1,A1,B1,B1,B1,B1,B1,B1 be equivalent to A1,A2,A3,A4,A5,A6,B1,B2,B3,B4,B5,B6 for your purposes?
yes
If so, each party will pick one of 6^6 lists, and the other person's choices don't matter, so the chances are 1 in 6^6.
sounds correct, give me a few minutes to think about it Smiley

...
Q1: 1 in 6^1 minus 1/6^2 minus 1/6^3 minus 1/6^4 minus 1/6^5 minus 1/6^6.

Can you simplify them into a % for me? I don't get how to take that statement and work out the 'chance' that it occurs.

Should P1 be equal to P6 (1 in 46656) or am I just guessing wrong on that (wild guess)?
Pages:
Jump to: