تقنية

mean وfmean في بايثون: هل يبقى الكسر دقيقًا؟

mean للكسرين 1/10 و3/10 تعطي Fraction 1/5.
متوسط كسري دقيق.

mean في مثال الكسور تعيد Fraction، بينما fmean تعيد float. [1] [2]

الخلاصة السريعة

لا مع fmean في مثالنا؛ يتغير النوع والقيمة الدقيقة. [1] [2]

  • mean في مثال الكسور تعيد Fraction، بينما fmean تعيد float. [1] [2]
  • Fraction.from_float تمثل العدد العائم نفسه بالضبط؛ قد يختلف عن الكسر الأصلي. [1] [2]
  • على CPython 3.12.14، F اختصار Fraction؛ متوسط F(1,10) وF(3,10) هو 1/5؛ fmean تعطي 0.2. [1] [2]
  • القيمة العائمة 0.2 تختلف عن 1/5؛ خمسة أمثال بسط كسرها ناقص مقامه تساوي 1. [1] [2]
  • تحكم: F(1,4) وF(3,4) يعطيان 1/2 و0.5، ويتفقان بالضبط؛ تبقى المدخلات. [1] [2]

نوع النتيجة

mean في مثال الكسور تعيد Fraction، بينما fmean تعيد float. [1] [2]

التحويل من العائم

Fraction.from_float تمثل العدد العائم نفسه بالضبط؛ قد يختلف عن الكسر الأصلي. [1] [2]

متوسط كسرين

على CPython 3.12.14، F اختصار Fraction؛ متوسط F(1,10) وF(3,10) هو 1/5؛ fmean تعطي 0.2. [1] [2]

import statistics as st from fractions import Fraction as F data=[F(1,10),F(3,10)] exact=st.mean(data);floating=st.fmean(data) print(exact,floating) [1] [2]

fmean للكسرين تعطي float 0.2 غير المساوية 1/5 بالضبط.
العائم يختلف هنا.

الدقة والتحكم

القيمة العائمة 0.2 تختلف عن 1/5؛ خمسة أمثال بسط كسرها ناقص مقامه تساوي 1. [1] [2]

binary=F.from_float(floating) print(exact==binary) print(binary.numerator*5-binary.denominator) [1] [2]

تحكم: F(1,4) وF(3,4) يعطيان 1/2 و0.5، ويتفقان بالضبط؛ تبقى المدخلات. [1] [2]

المراجع

  1. Python statistics
  2. Python Fraction

للتوسع: لغات البرمجة.

أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.