AIwinter

Untitled

Mar 28th, 2024
12
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.89 KB | None | 0 0
  1. import random
  2. import math
  3.  
  4. a = float(input("Введите a: "))
  5. b = float(input("Введите b: "))
  6. N = int(input("Введите N: "))
  7. randomNumbers = []
  8. summSc = 0
  9. summ2 = 0
  10.  
  11. k = math.ceil(1 + 3.322 * math.log10(N))
  12. print("k:", k)
  13.  
  14. def load_table_values(file_path):
  15. table_values = []
  16. with open(file_path, 'r') as file:
  17. for line in file:
  18. table_values.append(float(line.strip()))
  19. return table_values
  20.  
  21. tableValues = load_table_values("table_values.txt")
  22.  
  23. for i in range(N):
  24. randomNumber = round(a + (b - a) * random.random(), 3)
  25. randomNumbers.append(randomNumber)
  26. summSc += randomNumber
  27. summ2 += math.pow(randomNumber, 2)
  28.  
  29. print(randomNumbers)
  30. math_avg = (a + b) / 2
  31. d = math.pow(b - a, 2) / 12
  32.  
  33.  
  34. print("Математическое ожидание:", math_avg)
  35. print("Дисперсия:", d)
  36.  
  37. print("Расчетное математическое ожидание:", round(summSc / N, 3))
  38. print("Расчетная дисперсия:", round((summ2 - N * math.pow(summSc / N, 2)) / (N - 1), 5)) #Дисперсия = ∑ X^2 - N ( ∑ X/N)^2/N - 1
  39. randomNumbers.sort()
  40. print("Отсортированные числа:")
  41. for num in randomNumbers:
  42. print(num)
  43.  
  44. intervalCounts = [0] * k
  45. range_ = b - a
  46. intervalSize = range_ / k
  47. intervalBounds = [a + i * intervalSize for i in range(k + 1)]
  48.  
  49. for randomNumber in randomNumbers:
  50. for j in range(k):
  51. if intervalBounds[j] <= randomNumber < intervalBounds[j + 1]:
  52. intervalCounts[j] += 1
  53. break
  54.  
  55. for i in range(k):
  56. print("Интервал", i, ":", intervalCounts[i])
  57.  
  58. x = 0
  59. for i in range(k):
  60. x += math.pow(intervalCounts[i] - N / k, 2) / (N / k)
  61.  
  62. print("x:", round(x, 3))
  63. print("Табличное значение x^2:", tableValues[k - 1])
  64.  
  65. if x < tableValues[k - 1]:
  66. print("Гипотеза о согласованности распределений верна")
  67. c = "Гипотеза о согласованности распределений верна"
  68. else:
  69. print("Гипотеза о согласованности распределений отвергается")
  70. c = "Гипотеза о согласованности распределений отвергается"
  71.  
  72. values = f"""n = {N}
  73. a = {a}
  74. b = {b}
  75. Теоретическое математическое ожидание= {math_avg}
  76. Расчетное математическое ожидание= {round(summSc / N, 3)}
  77. Теоретическая дисперсия= {d}
  78. Расчетная дисперсия= {round((summ2 - N * math.pow(summSc / N, 2)) / (N - 1), 5)}
  79. Расчетное X^2= {round(x, 3)}
  80. Теоретическое X^2= {tableValues[k - 1]}
  81. Вывод = {c}"""
  82.  
  83. file_path = "text.txt"
  84. with open(file_path, "w") as file:
  85. for value in randomNumbers:
  86. file.write(str(value) + "\n")
  87. file.write(values)
Add Comment
Please, Sign In to add comment