حاسبة التقسيم — نسبة الخلط والكميات
ابحث عن النسبة لخلط مكون أرخص وآخر أغلى (أو تركيز منخفض وآخر عالي) للوصول إلى قيمة مستهدفة، بالإضافة إلى الكمية الدقيقة لكل واحد. حاسبة تقسيم بديلة مجانية مع مخطط صليب عملي.
حاسبة التقسيم
أدخل قيمة المكون الأرخص والمكون الأغلى (الأكثر تكلفة) وقيمة الخليط المستهدفة. تعيد الأداة النسبة المراد خلطهما فيها — والكميات الدقيقة إذا أعطيت كمية إجمالية.
قيم الإدخال
النتائج
نسبة الخلط
الكميات
صليب التقسيم
صيغة التقسيم
10.00 : 10.00 = (30.00 − 20.00) : (20.00 − 10.00)
تكوين الخليط
التوثيق
ما يفعله هذا الحاسبة (شرح بسيط)
لديك شيئان بقيمة مختلفة — واحد رخيص وآخر مكلف — وتريد خلطهما في خليط يقع عند قيمة مستهدفة معينة بينهما. يخبرك التقسيم بمقدار كل واحد الذي يجب استخدامه.
تخيل لعبة التأرجح. القيمة المستهدفة هي نقطة الارتكاز. المكون الذي تكون قيمته بعيدة عن المستهدف يجب أن يكون قليل الكمية، والذي يكون قريب من المستهدف يجب أن يكون كبير، بحيث يتوازن الجانبان. التقسيم هو مجرد حساب هذا التوازن.
أدخل ثلاثة أرقام — القيمة الأرخص والقيمة الأغلى والمستهدف — وتمنحك الأداة:
- نسبة الخلط (مثل 1: 2، بمعنى جزء واحد أرخص إلى جزأين أغلى)،
- المقادير الدقيقة لكل مكون مرة تدخل الكمية الإجمالية،
- رسم تخطيطي للصليب و مخطط التكوين حتى تتمكن من رؤية الخليط.
"القيمة" يمكن أن تكون سعراً أو قوة نسبة مئوية أو تركيز (٪، mg/mL, w/v) — أي شيء يقاس على مقياس واحد متسق.
الصيغة
مع قيمة أرخص C، قيمة أغلى D، وقيمة الخليط المستهدفة M حيث C < M < D:
كل جزء من أجزاء المكون يأتي من الفرق المعاكس — كلما بعدت القيمة المستهدفة عن مكون، كلما احتجت إلى المزيد من المكون الآخر. إذا كنت تعرف أيضاً الكمية الإجمالية Q:
صليب التقسيم
الطريقة الكلاسيكية لتخطيط هذا هي "الصليب": ضع قيمتي المكونين على اليسار، المستهدف في المنتصف، واطرح على طول كل قطر. ينتج عن كل فرق على الزاوية المعاكسة ويصبح أجزاء ذلك المكون.
1 Dearer (D) ───────┐ ┌─────── (M − C) = dearer parts
2 ╲ ╱
3 Target (M)
4 ╱ ╲
5 Cheaper (C) ───────┘ └─────── (D − M) = cheaper parts
6مثال عملي
اخلط مكون بـ 30 للبيع بـ $20:
أجزاء متساوية. بمجموع 100 وحدة، هذا هو 50 من الأرخص و 50 من الأغلى — والقيمة المخلوطة تساوي بالضبط 25 والنسبة تصبح 5: 15 = 1: 3: كلما اقتربت القيمة المستهدفة من القيمة الأغلى، كلما احتجت إلى المزيد من المكون الأغلى.
التقسيم البديل مقابل التقسيم الوسيط
- التقسيم البديل (ما تفعله هذه الأداة) — أنت تعرف قيمتي المكون والمستهدف، وتحل بحثاً عن النسبة.
- التقسيم الوسيط — أنت تعرف كميات وقيم المكونات، وتحل بحثاً عن قيمة الخليط الناتج. هذا هو مجرد المتوسط المرجح: .
الاثنان يعاكسان بعضهما البعض، وهي طريقة سهلة للتحقق من عملك: أدخل الكميات التي توفرها هذه الأداة في متوسط مرجح وسيجب أن تصل إلى هدفك.
حيث يتم استخدامه
- تحضير الأدوية — اخلط تحضير عالي وآخر منخفض القوة (على سبيل المثال محلول 70٪ و 20٪) إلى تركيز موصوف. القيم هي نسب مئوية أو mg/mL بدلاً من الدولارات؛ الحساب متطابق.
- الأعمال والتسعير — اخلط مخزون رخيص وآخر متميز للوصول إلى تكلفة وحدة مستهدفة أو سعر بيع.
- الكيمياء والغذاء والمشروبات — خفف أو قوي إلى تركيز مستهدف أو إثبات أو Brix.
نظراً لأن القاعدة تحتاج فقط إلى قيمة واحدة على مقياس متسق، فإن نفس المدخلات الثلاثة تغطي كل هذه.
كيفية استخدامه
- أدخل القيمة الأرخص و القيمة الأغلى و قيمة الخليط المستهدفة (أي وحدة متسقة).
- اختياري أدخل الكمية الإجمالية للحصول على الكمية الدقيقة لكل مكون.
- اقرأ النسبة والنسبة المبسطة والكميات؛ يظهر الرسم التخطيطي للصليب والمخطط الدائري الانقسام.
تتزامن المدخلات مع عنوان URL للصفحة، لذا يمكنك وضع إشارة مرجعية أو مشاركة إعداد دقيق. يجب أن تقع القيمة المستهدفة بدقة بين قيمتي المكون — وإلا فلن يتمكن أي خليط منهما من الوصول إليها، وتقول الأداة ذلك.
احسبها في الكود
تأخذ كل مقتطفة القيمة الأرخص c، القيمة الأغلى d، المستهدف m، والكمية الإجمالية q، وتعود الأجزاء الاثنين والكميتين.
Excel
على افتراض أن C2 = أرخص، D2 = أغلى، M2 = مستهدف، Q2 = الكمية الإجمالية:
1=D2-M2 ' cheaper parts (D − M)
2=M2-C2 ' dearer parts (M − C)
3=(D2-M2)/((D2-M2)+(M2-C2))*Q2 ' cheaper amount
4=(M2-C2)/((D2-M2)+(M2-C2))*Q2 ' dearer amount
51def alligation(c, d, m, q=None):
2 if not (c < m < d):
3 raise ValueError("need cheaper < target < dearer")
4 cheaper_parts, dearer_parts = d - m, m - c
5 total = cheaper_parts + dearer_parts
6 if q is None:
7 return cheaper_parts, dearer_parts
8 return cheaper_parts / total * q, dearer_parts / total * q
91function alligation(c, d, m, q) {
2 if (!(c < m && m < d)) throw new Error("need cheaper < target < dearer");
3 const cheaper = d - m, dearer = m - c, total = cheaper + dearer;
4 return q == null
5 ? { cheaper, dearer }
6 : { cheaperAmount: (cheaper / total) * q, dearerAmount: (dearer / total) * q };
7}
81double[] alligation(double c, double d, double m, double q) {
2 if (!(c < m && m < d)) throw new IllegalArgumentException("need c < m < d");
3 double cheaper = d - m, dearer = m - c, total = cheaper + dearer;
4 return new double[] { cheaper / total * q, dearer / total * q };
5}
61(double cheaper, double dearer) Alligation(double c, double d, double m, double q)
2{
3 if (!(c < m && m < d)) throw new ArgumentException("need c < m < d");
4 double cp = d - m, dp = m - c, total = cp + dp;
5 return (cp / total * q, dp / total * q);
6}
71#include <stdexcept>
2#include <utility>
3std::pair<double, double> alligation(double c, double d, double m, double q) {
4 if (!(c < m && m < d)) throw std::invalid_argument("need c < m < d");
5 double cheaper = d - m, dearer = m - c, total = cheaper + dearer;
6 return { cheaper / total * q, dearer / total * q };
7}
81func Alligation(c, d, m, q float64) (float64, float64, error) {
2 if !(c < m && m < d) {
3 return 0, 0, errors.New("need c < m < d")
4 }
5 cheaper, dearer := d-m, m-c
6 total := cheaper + dearer
7 return cheaper / total * q, dearer / total * q, nil
8}
91fn alligation(c: f64, d: f64, m: f64, q: f64) -> Option<(f64, f64)> {
2 if !(c < m && m < d) { return None; }
3 let (cheaper, dearer) = (d - m, m - c);
4 let total = cheaper + dearer;
5 Some((cheaper / total * q, dearer / total * q))
6}
71function alligation($c, $d, $m, $q) {
2 if (!($c < $m && $m < $d)) throw new InvalidArgumentException('need c < m < d');
3 $cheaper = $d - $m; $dearer = $m - $c; $total = $cheaper + $dearer;
4 return [$cheaper / $total * $q, $dearer / $total * $q];
5}
61def alligation(c, d, m, q)
2 raise ArgumentError, "need c < m < d" unless c < m && m < d
3 cheaper, dearer = d - m, m - c
4 total = cheaper + dearer
5 [cheaper / total * q, dearer / total * q]
6end
71alligation <- function(c, d, m, q) {
2 stopifnot(c < m, m < d)
3 cheaper <- d - m; dearer <- m - c; total <- cheaper + dearer
4 c(cheaper = cheaper / total * q, dearer = dearer / total * q)
5}
6الأسئلة المتكررة
ماذا إذا لم تكن القيمة المستهدفة بين القيمتين؟ ثم لا يمكن لأي خليط من الاثنين أن يصل إليها — خليط من عنصر بـ 30 ينتهي دائماً بين 30. تشير الأداة إلى هذا بدلاً من إرجاع نسبة مزيفة.
هل تهم الوحدة؟ رقم. تعتمد النسبة فقط على الفروقات على مقياس واحد متسق، لذا تعمل الأسعار والنسب المئوية وmg/mL — فقط احتفظ بالمدخلات الثلاثة في نفس الوحدة.
هل يمكنني استخدامه لثلاثة أو أكثر من المكونات؟ تتعامل هذه الأداة مع حالة المكونين. المشاكل التي تحتوي على ثلاثة أو أكثر من المكونات لها إجابات صحيحة كثيرة وعادة ما يتم حلها بإقران المكونات أو مع المعادلات الخطية.
هل التقسيم هو نفس المتوسط المرجح؟ إنهما معاكسان. متوسط مرجح (التقسيم الوسيط) يحول الكميات إلى قيمة خليط؛ يحول التقسيم البديل القيمة المستهدفة إلى كميات.
المصادر
- Alligation — Wikipedia — تعاريف التقسيم البديل والوسيط والقاعدة الأساسية.
- Alligation Calculator — Omni Calculator — الشكل المستند إلى التركيز المستخدم في الصيدلة، مع أمثلة عملية.
- Pharmaceutical calculations by alligation method — EGPAT — شرح من المبادئ الأولى لصليب التقسيم للتحضير.