Advertisement
Guest User

Untitled

a guest
Oct 26th, 2016
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.88 KB | None | 0 0
  1. import std.algorithm;
  2. import std.array;
  3. import std.ascii;
  4. import std.container;
  5. import std.conv;
  6. import std.math;
  7. import std.numeric;
  8. import std.range;
  9. import std.stdio;
  10. import std.string;
  11. import std.typecons;
  12.  
  13. import std.random;
  14.  
  15. real chi2(int m) {
  16. real ans = 0;
  17. int r = m;
  18. while (true) {
  19. real u0 = uniform(0.0, 1.0);
  20. real u1 = uniform(0.0, 1.0);
  21. real v0 = 2 * u0 - 1;
  22. real v1 = 2 * u1 - 1;
  23. real s = v0 * v0 + v1 * v1;
  24. if (s > 1.0) continue;
  25. real x_2 = (-2.0 * log(s) / s) * v0 * v0;
  26. real y_2 = (-2.0 * log(s) / s) * v1 * v1;
  27. ans += x_2; r--; if (r == 0) break;
  28. ans += y_2; r--; if (r == 0) break;
  29. }
  30. return ans;
  31. }
  32.  
  33. void main(in string[] args) {
  34. int free_deg = args[1].to!int;
  35. int try_num = args[2].to!int;
  36. foreach (i; 0 .. try_num) {
  37. writefln("%.5f", chi2(free_deg));
  38. }
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement