Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- import sys, collections, math
- def mean(A):
- S = sum(A)
- N = len(A)
- return float(S) / float(N) if N > 0 else 0.0
- def median(A):
- N = len(A)
- A_sorted = sorted(A)
- if N%2 != 0:
- ret = A_sorted[N/2]
- else:
- ret = float(A_sorted[N/2] + A_sorted[N/2-1])/2.0
- return ret
- COUNT = 0
- VALUE = 1
- def mode_freq_cmp(v1, v2):
- if v1[COUNT] != v2[COUNT]:
- return v2[COUNT] - v1[COUNT]
- else:
- return v1[VALUE] - v2[VALUE]
- def mode(A):
- freq = collections.defaultdict(int)
- for v in A:
- freq[v] += 1
- freq_list = [(count, value) for value, count in freq.iteritems()]
- freq_list.sort(cmp=mode_freq_cmp)
- return freq_list[0][VALUE]
- def stdev(A):
- N = len(A)
- M = mean(A)
- S = 0
- for v in A:
- d = v - M
- S += d * d
- return math.sqrt( S / N )
- def confidence_interval(A, Mean, Stdev, confidence=0.95):
- v = 1.96 * Stdev / math.sqrt(len(A))
- return Mean - v, Mean + v
- def main(A):
- Mean, Median, Stdev = mean(A), median(A), stdev(A)
- conf_intervals = confidence_interval(A, Mean, Stdev)
- print '%.1f' % Mean
- print '%.1f' % Median
- print '%d' % mode(A)
- print '%.1f' % Stdev
- print '%.1f %.1f' % (conf_intervals[0], conf_intervals[1])
- if __name__ == '__main__':
- N = int(input())
- A = [int(v) for v in sys.stdin.readline().split(' ')]
- #A = [int(v) for v in "64630 11735 14216 99233 14470 4978 73429 38120 51135 67060".split()]
- main(A)
Add Comment
Please, Sign In to add comment