File tree Expand file tree Collapse file tree 2 files changed +61
-0
lines changed Expand file tree Collapse file tree 2 files changed +61
-0
lines changed Original file line number Diff line number Diff line change @@ -227,6 +227,39 @@ public class Solution {
227
227
}
228
228
```
229
229
230
+ #### Swift
231
+
232
+ ``` swift
233
+ class Solution {
234
+ func dicesProbability (_ n : Int ) -> [Double ] {
235
+ var f = Array (repeating : Array (repeating : 0 , count : 6 * n + 1 ), count : n + 1 )
236
+ for j in 1 ... 6 {
237
+ f[1 ][j] = 1
238
+ }
239
+ if n > 1 {
240
+ for i in 2 ... n {
241
+ for j in i... (6 * i) {
242
+ for k in 1 ... 6 {
243
+ if j >= k {
244
+ f[i][j] += f[i - 1 ][j - k]
245
+ }
246
+ }
247
+ }
248
+ }
249
+ }
250
+ var m = 1.0
251
+ for _ in 0 ..< n {
252
+ m *= 6.0
253
+ }
254
+ var ans = Array (repeating : 0.0 , count : 5 * n + 1 )
255
+ for j in n... (6 * n) {
256
+ ans[j - n] = Double (f[n][j]) / m
257
+ }
258
+ return ans
259
+ }
260
+ }
261
+ ```
262
+
230
263
<!-- tabs: end -->
231
264
232
265
<!-- solution: end -->
Original file line number Diff line number Diff line change
1
+ class Solution {
2
+ func dicesProbability( _ n: Int ) -> [ Double ] {
3
+ var f = Array ( repeating: Array ( repeating: 0 , count: 6 * n + 1 ) , count: n + 1 )
4
+ for j in 1 ... 6 {
5
+ f [ 1 ] [ j] = 1
6
+ }
7
+ if n > 1 {
8
+ for i in 2 ... n {
9
+ for j in i... ( 6 * i) {
10
+ for k in 1 ... 6 {
11
+ if j >= k {
12
+ f [ i] [ j] += f [ i - 1 ] [ j - k]
13
+ }
14
+ }
15
+ }
16
+ }
17
+ }
18
+ var m = 1.0
19
+ for _ in 0 ..< n {
20
+ m *= 6.0
21
+ }
22
+ var ans = Array ( repeating: 0.0 , count: 5 * n + 1 )
23
+ for j in n... ( 6 * n) {
24
+ ans [ j - n] = Double ( f [ n] [ j] ) / m
25
+ }
26
+ return ans
27
+ }
28
+ }
You can’t perform that action at this time.
0 commit comments