Модифицировать программу так, чтобы она решала задачу с 10 000 000 элементов менее чем за минуту - C#

Узнай цену своей работы

Формулировка задачи:

Модифицировать задачу так, чтобы она решала задачу с 10 000 000 элементов менее чем за минуту. Сама задача:
Листинг программы
  1. namespace DoubleBinary
  2. {
  3. class Program
  4. {
  5. public static double F(double x)
  6. {
  7. return x * x-50*x+10;
  8. }
  9. public static void SaveFunc(string fileName, double a,double b,double h)
  10. {
  11. FileStream fs = new FileStream(fileName, FileMode.Create, FileAccess.Write);
  12. BinaryWriter bw = new BinaryWriter(fs);
  13. double x = a;
  14. while (x<=b)
  15. {
  16. bw.Write(F(x));
  17. x += h;// x=x+h;
  18. }
  19. bw.Close();
  20. fs.Close();
  21. }
  22. public static double Load(string fileName)
  23. {
  24. FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
  25. BinaryReader bw = new BinaryReader(fs);
  26. double min = double.MaxValue;
  27. double d;
  28. for(int i=0;i<fs.Length/sizeof(double);i++)
  29. {
  30. // Считываем значение и переходим к следующему
  31. d = bw.ReadDouble();
  32. if (d < min) min = d;
  33. }
  34. bw.Close();
  35. fs.Close();
  36. return min;
  37. }
  38. static void Main(string[] args)
  39. {
  40. SaveFunc("data.bin", -100, 100, 0.5);
  41. Console.WriteLine(Load("data.bin"));
  42. Console.ReadKey();
  43. }
  44. }
  45. }
как лучше изменить программу?

Решение задачи: «Модифицировать программу так, чтобы она решала задачу с 10 000 000 элементов менее чем за минуту»

textual
Листинг программы
  1. static void Save(string fileName, int n)
  2. {
  3. Random rnd = new Random();
  4. FileStream fs = new FileStream(fileName, FileMode.Create, FileAccess.Write);
  5. BinaryWriter bw = new BinaryWriter(fs);
  6. for (int i = 1; i < n; i++)
  7. {
  8. bw.Write(rnd.Next(0,100000)); // int -занимает 4 байта
  9. }
  10. fs.Close();
  11. bw.Close();
  12. }
  13. static void Load(string fileName)
  14. {
  15. DateTime d = DateTime.Now;
  16. FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
  17. BinaryReader br = new BinaryReader(fs);
  18. int[] a = new int[fs.Length / 4];
  19. for (int i = 0; i < fs.Length / 4; i++) // int занимает 4 байта
  20. {
  21. a[i] = br.ReadInt32();
  22. // if (i % 3 == 0) Console.WriteLine("{0,3} {1}", i, a);
  23. }
  24. br.Close();
  25. fs.Close();
  26. int max = 0;
  27. for (int i = 0; i < a.Length; i++)
  28. for (int j = 0; j < a.Length; j++)
  29. if (Math.Abs(i - j) >= 8 && a[i] * a[j] > max) max = a[i] * a[j];
  30. Console.WriteLine(max);
  31. Console.WriteLine(DateTime.Now - d);
  32. }
  33. static void Main(string[] args)
  34. {
  35. Save("data.bin", 100000);
  36. Load("data.bin");
  37. Console.ReadKey();
  38. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.286 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы