Guest User

Untitled

a guest
May 24th, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.14 KB | None | 0 0
  1. int size = 100000000;
  2. double sizeInMegabytes = (size * 8.0) / 1024.0 / 1024.0; //762 mb
  3. double[] randomNumbers = new double[size];
  4.  
  5. private static IRandomGenerator rnd = new MersenneTwister();
  6. private static IDistribution dist = new DiscreteNormalDistribution(1048576);
  7. private static List<double> ndRandomNumbers = new List<double>();
  8.  
  9. private static void AddNDRandomNumbers(int numberOfRandomNumbers) {
  10. for (int i = 0; i < numberOfRandomNumbers; i++) {
  11. ndRandomNumbers.Add(dist.ICDF(rnd.nextUniform()));
  12. }
  13. }
  14.  
  15. int blockSize = 1000000;
  16.  
  17. while (true) {
  18. try
  19. {
  20. AddNDRandomNumbers(blockSize);
  21. }
  22. catch (System.OutOfMemoryException ex)
  23. {
  24. break;
  25. }
  26. }
  27. double arrayTotalSizeInMegabytes = (ndRandomNumbers.Count * 8.0) / 1024.0 / 1024.0;
  28.  
  29. private static IEnumerable<double> MakeRandomNumbers(int numberOfRandomNumbers)
  30. {
  31. for (int i = 0; i < numberOfRandomNumbers; i++)
  32. {
  33. yield return randomGenerator.GetAnotherRandomNumber();
  34. }
  35. }
  36.  
  37.  
  38. ...
  39.  
  40. // Hooray, we won't run out of memory!
  41. foreach(var number in MakeRandomNumbers(int.MaxValue))
  42. {
  43. Console.WriteLine(number);
  44. }
Add Comment
Please, Sign In to add comment