Advertisement
Guest User

Untitled

a guest
Dec 11th, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.63 KB | None | 0 0
  1. private void button1_Click(object sender, EventArgs e)
  2. {
  3. try
  4. {
  5. // проверка вероятностей
  6. Decimal probabilities =
  7. Convert.ToDecimal(task2_p_A.Value) +
  8. Convert.ToDecimal(task2_p_B.Value) +
  9. Convert.ToDecimal(task2_p_C.Value) +
  10. Convert.ToDecimal(task2_p_D.Value);
  11.  
  12.  
  13. if (probabilities != 1)
  14. throw new ArgumentException("Сумма вероятностей должна быть равна единице!");
  15.  
  16.  
  17. // расчет среднего количества информации
  18. task2_bits.Text = "Среднее количество информации:";
  19. double[] probs = {
  20. Convert.ToDouble(task2_p_A.Value), Convert.ToDouble(task2_p_B.Value),
  21. Convert.ToDouble(task2_p_C.Value), Convert.ToDouble(task2_p_D.Value)
  22. };
  23.  
  24. // первый способ - формула Шеннона
  25. double quantity = 0.0;
  26. for (int i = 0; i < probs.Length; i++)
  27. {
  28. quantity -= probs[i] * Math.Log(probs[i], 2);
  29. }
  30.  
  31. task2_bits.Text += "\n - по формуле Шеннона: " + quantity + " бит";
  32. }
  33. catch (Exception ex)
  34. {
  35. MessageBox.Show(ex.Message + "\nПроверьте, все ли поля введены и введены ли они верно.");
  36. }
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement