Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
gteissier
GitHub Repository: gteissier/erl-matter
Path: blob/master/bin-seeds.py
271 views
1
#!/usr/bin/env python2.7
2
3
import sys
4
import json
5
6
def load_seeds(f):
7
data = [int(x) for x in f.readlines()]
8
return data
9
10
def make_bins(data):
11
_min = min(data)
12
_max = max(data)
13
14
_delta = _max-_min+1
15
_epsilon = 1000000
16
17
_bins = [0 for x in range(int(_delta//_epsilon) + 1)]
18
for d in data:
19
_bins[int((d-_min)//_epsilon)] += 1
20
21
indexes = sorted(range(len(_bins)), key=lambda x: _bins[x], reverse=True)
22
23
for i in indexes:
24
yield (_min+i*int(_epsilon), _min+(i+1)*int(_epsilon), _bins[i])
25
26
data = load_seeds(sys.stdin)
27
n = len(data)
28
intervals = []
29
for (a, b, count) in make_bins(data):
30
intervals.append({'start': a, 'stop': b, 'prob': (100.0*count)/n})
31
32
print(json.dumps(intervals))
33
34