|
发表于 2018-8-25 10:01:34
|
显示全部楼层
- 迟了的爱~
- >>> def fun( s, n):
- if n <= 0 or (s/n>9) or s < 0:
- return "-1"
- import random as R
- res = ""
- used = 0
- for i in range(1,n+1):
- unused = s - used
- ma = min(9, unused)
- mi = unused if i==n else max(0,unused - 9 * (n-i))
- t = R.randint(mi,ma)
- res += str(t)
- used += t
- lres = list(res)
- R.shuffle(lres)
- return "".join(lres)
- >>> fun(40,8)
- '21428869'
- >>> def ct( n ):
- fs = {}
- for i in range(n):
- t = fun(1,10)
- k = t.index("1")
- r = fs.get(k)
- if r == None:
- r = 1
- else:
- r += 1
- fs[k] = r
- print(fs)
-
- >>> ct(10000)
- {4: 1031, 8: 956, 0: 1008, 6: 948, 9: 982, 3: 1048, 5: 956, 7: 980, 1: 1030, 2: 1061}
- >>>
复制代码 |
评分
-
查看全部评分
|