Advertisement
Guest User

Untitled

a guest
Dec 14th, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.32 KB | None | 0 0
  1. import random
  2.  
  3. import numpy as np
  4. import datetime
  5. import matplotlib.pyplot as plt
  6. from statistics import median
  7. from statistics import mean
  8. from collections import Counter
  9.  
  10. def distr (k):
  11.     if k == 0.0:
  12.         return 1/2
  13.     return 1.0/(4.0*abs(k)*(abs(k)+1.0))
  14.  
  15. prec = 1
  16. lista = []
  17. lista3 = []
  18. for i in np.arange(-10.0, 10.0, prec):
  19.     lista3.append(distr(i))
  20.     lista.append(i)
  21. plt.plot(lista, lista3)
  22. plt.ylim(0.0,1.0)
  23. plt.xlim(-10,10)
  24. plt.show()
  25.  
  26.  
  27. losowe = np.random.random(200000)
  28. kt = 0
  29.  
  30. def randomWithDistrubation(k):
  31.     global kt
  32.     global losowe
  33.     y = losowe[kt]
  34.     kt+=1
  35.     if y < 0.5:
  36.         return 0
  37.     znak = -1 if (0.5 < y) and (y < 0.75) else 1
  38.     x = losowe[kt]
  39.     kt+=1
  40.     wyn = np.ceil(1 / (x)) - 1
  41.     return znak * wyn
  42.  
  43. zdystrybuanta = [randomWithDistrubation(i) for i in range(10000)]
  44. pref = []
  45.  
  46. suma = 0
  47. for i in range(10000):
  48.     suma += zdystrybuanta[i]
  49.     pref.append(suma/(i+1))
  50. plt.plot(pref)
  51. plt.show()
  52.  
  53. czesciowy = []
  54. mediana = []
  55. for i in range(10000):
  56.     czesciowy.append(zdystrybuanta[i])
  57.     mediana.append(median(czesciowy))
  58. plt.plot(mediana)
  59. plt.show()
  60.  
  61. zwektorozywanaDystr = np.vectorize(randomWithDistrubation)
  62.  
  63. samplowanie = np.fromfunction(zwektorozywanaDystr, (10000,))
  64.  
  65. plt.hist(samplowanie, bins=range(-10, 10))
  66. plt.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement