Man ska slå vad med personer som har mindre koll än en själv!
![Smile :)](./images/smilies/icon_smile.gif)
Kod: Markera allt
public class Dice {
public static void main(String[] args) {
long startTime = System.nanoTime();
Dices dices;
dices = new Dices();
int[] allDices = new int[216];
int antalProdukter;
int produkt;
int[] twoDiceProduct = dices.twoDiceProduct();
allDices = dices.allDices(twoDiceProduct);
produkt = 24;
antalProdukter = dices.search(produkt, allDices);
long endTime = System.nanoTime();
System.out.println("Antal Tärningskast som ger " + produkt + " är " + antalProdukter);
long timeElapsed = endTime - startTime;
System.out.println("Execution time in microseconds : " + timeElapsed / 1000);
}
}
Kod: Markera allt
Antal Tärningskast som ger 24 är 15
Execution time in microseconds : 609
Kod: Markera allt
Antal Tärningskast som ger 24 är 15
Execution time in microseconds : 353
Kod: Markera allt
public class Dice {
public static void main(String[] args) {
Dices dices;
dices = new Dices();
int[] allDices = new int[216];
int[] twoDiceProduct = new int[36];
int antalProdukter;
int produkt =24;
long startTime = System.nanoTime();
twoDiceProduct = dices.twoDiceProduct();
allDices = dices.allDices(twoDiceProduct);
antalProdukter = dices.search(produkt, allDices);
long endTime = System.nanoTime();
System.out.println("Antal Tärningskast som ger " + produkt + " är " + antalProdukter);
long timeElapsed = endTime - startTime;
System.out.println("Execution time in microseconds : " + timeElapsed / 1000);
}
}
Kod: Markera allt
Antal Tärningskast som ger 24 är 15
Execution time in microseconds : 14
Kod: Markera allt
from itertools import product
from operator import mul
from functools import reduce
from collections import defaultdict
sols = defaultdict(list)
N_dice = 3
dices = (range(1,7),)*N_dice
for vals in product(*dices):
sols[reduce(mul, vals)].append(vals)
for k,v in sorted(sols.items()):
if len(v):
print(f"For {k} there are {len(v)} combinations, {len(v)/6**N_dice*100:0.2f}%")
Jag trigga lite på det och sannolikt en felläsning.. och gjorde en liten graf över alla summorna och hur många kombinationer som fanns för varje (ja brute force i excel...)
Kod: Markera allt
1 1
2 3
3 3
4 6
5 3
6 9
8 7
9 3
10 6
12 15
15 6
16 6
18 9
20 9
24 15
25 3
27 1
30 12
32 3
36 12
40 6
45 3
48 9
50 3
54 3
60 12
64 1
72 9
75 3
80 3
90 6
96 3
100 3
108 3
120 6
125 1
144 3
150 3
180 3
216 1
Kod: Markera allt
produkt = 24
24, 12, 8, 6, 4, 2 och 1 delar 24 jämt upp.
Tärningar A, B och C
AxB C
-----------
24 1
12 2
8 3
6 4
4 6
2 -
1 -
Sedan räcker det med att ta reda på hur många
sätt AxB kan bli 24, 12, 8, 6 resp. 4 och det
är 2, 4, 2, 4 och 3 summan blir 15.
Kod: Markera allt
1 1/36
2 2/36
3 1/36
4 3/36
5 2/36
6 4/36
7 0
8 2/36
9 1/36
10 2/36
11 0
12 4/36
13 0
14 0
15 2/36
16 1/36
17 0
18 2/36
19 0
20 2/36
21 0
22 0
23 0
24 2/36
25 1/36
26 0
27 0
28 0
29 0
30 2/36
31 0
32 0
33 0
34 0
35 0
36 1/36
24
24 x 1
12 x 2
8 x 3
6 x 4
4 x 6
3 x -
2 x -
1 x -
2/36 + 4/36 + 2/36 + 4/36 + 3/36 = 15/36