Máy tính Alligation — Tỷ lệ trộn & Lượng
Tìm tỷ lệ để trộn một thành phần rẻ hơn và một thành phần đắt hơn (hoặc nồng độ thấp và cao) để đạt giá trị mục tiêu, cộng với lượng chính xác của mỗi cái. Máy tính alligation thay thế miễn phí với sơ đồ chéo đã được làm.
Máy tính Alligation
Nhập giá trị của thành phần rẻ hơn, thành phần đắt hơn (tốn kém hơn), và giá trị hỗn hợp mục tiêu. Công cụ trả về tỷ lệ để trộn chúng — và lượng chính xác nếu bạn cung cấp tổng lượng.
Giá trị đầu vào
Kết quả
Tỷ lệ trộn
Lượng
Sơ đồ chéo alligation
Công thức alligation
10.00 : 10.00 = (30.00 − 20.00) : (20.00 − 10.00)
Thành phần hỗn hợp
Tài liệu hướng dẫn
Công cụ này làm gì (ELI5)
Bạn có hai thứ có giá trị khác nhau — một cái rẻ và một cái đắt — và bạn muốn trộn chúng thành một hỗn hợp có giá trị mục tiêu ở giữa. Alligation cho bạn biết phải dùng bao nhiêu của mỗi cái.
Hãy tưởng tượng một cái cân xung quanh. Giá trị mục tiêu là điểm tựa. Thành phần có giá trị xa từ mục tiêu phải ở lượng nhỏ, và cái gần với mục tiêu phải ở lượng lớn, để hai bên cân bằng. Alligation chỉ là phép tính cân bằng đó.
Nhập ba số — giá trị rẻ, giá trị đắt, và mục tiêu — và công cụ sẽ cho bạn:
- tỷ lệ trộn (ví dụ 1 : 2, nghĩa là 1 phần rẻ với 2 phần đắt),
- lượng chính xác của mỗi thành phần khi bạn nhập tổng lượng,
- sơ đồ chéo và biểu đồ thành phần để bạn có thể thấy sự trộn.
"Giá trị" có thể là giá cả, tỷ lệ phần trăm cường độ, hoặc nồng độ (%, mg/mL, w/v) — bất kỳ thứ gì được đo lường trên một thang đo nhất quán.
Công thức
Với giá trị rẻ C, giá trị đắt D, và giá trị hỗn hợp mục tiêu M trong đó C < M < D:
Mỗi phần của thành phần đến từ sự khác biệt ngược lại — càng xa mục tiêu từ một thành phần, bạn cần càng nhiều của thành phần khác. Nếu bạn cũng biết tổng lượng Q:
Sơ đồ chéo alligation
Cách cổ điển để bố trí cái này là "chéo": đặt hai giá trị thành phần ở bên trái, mục tiêu ở giữa, và trừ dọc theo mỗi đường chéo. Mỗi sự khác biệt đi đến góc đối diện và trở thành phần của thành phần đó.
1 Đắt (D) ───────┐ ┌─────── (M − C) = phần đắt
2 ╲ ╱
3 Mục tiêu (M)
4 ╱ ╲
5 Rẻ (C) ───────┘ └─────── (D − M) = phần rẻ
6Ví dụ đã làm
Trộn một thành phần 30 để bán ở $20:
Phần bằng nhau. Với 100 đơn vị tổng cộng, đó là 50 phần rẻ và 50 phần đắt — và giá trị trộn chính xác là 25 và tỷ lệ trở thành 5 : 15 = 1 : 3: càng gần mục tiêu đến giá trị đắt, bạn cần càng nhiều thành phần đắt.
Alligation thay thế vs. alligation trung bình
- Alligation thay thế (cái mà công cụ này làm) — bạn biết hai giá trị thành phần và mục tiêu, và bạn giải tỷ lệ.
- Alligation trung bình — bạn biết lượng và giá trị của các thành phần, và bạn giải hỗn hợp kết quả. Đó chỉ là trung bình có trọng số: .
Hai cái là nghịch đảo của nhau, đó là một cách tiện lợi để kiểm tra công việc của bạn: cho lượng công cụ này cung cấp lại vào một trung bình có trọng số và bạn sẽ đạt mục tiêu của mình.
Nơi nó được sử dụng
- Pha chế dược phẩm — trộn chuẩn bị cường độ cao và thấp (ví dụ dung dịch 70% và 20%) đến một nồng độ được xác định. Giá trị là tỷ lệ phần trăm hoặc mg/mL thay vì đô la; phép tính là giống hệt nhau.
- Kinh doanh & định giá — trộn kho rẻ và cao cấp để đạt giá nhân vị mục tiêu hoặc giá bán.
- Hóa học & thực phẩm/đồ uống — pha loãng hoặc tăng cường đến nồng độ, độ rượu, hoặc Brix mục tiêu.
Bởi vì quy tắc chỉ cần một giá trị duy nhất trên thang đo nhất quán, ba đầu vào tương tự bao gồm tất cả những cái này.
Cách sử dụng nó
- Nhập giá trị rẻ, giá trị đắt, và giá trị hỗn hợp mục tiêu (bất kỳ đơn vị nhất quán nào).
- Tùy chọn nhập tổng lượng để lấy lượng chính xác của mỗi thành phần.
- Đọc tỷ lệ, tỷ lệ đơn giản hóa, và lượng; sơ đồ chéo và biểu đồ bánh rán cho thấy sự phân chia.
Các đầu vào đồng bộ với URL trang, vì vậy bạn có thể đánh dấu hoặc chia sẻ một thiết lập chính xác. Mục tiêu phải nằm hoàn toàn giữa hai giá trị thành phần — nếu không, không có pha trộn của chúng có thể đạt được, và công cụ nói như vậy.
Tính toán trong mã
Mỗi đoạn lấy giá trị rẻ c, giá trị đắt d, mục tiêu m, và tổng lượng q, và trả về hai phần và hai lượng.
Excel
Giả sử C2 = rẻ, D2 = đắt, M2 = mục tiêu, Q2 = tổng lượng:
1=D2-M2 ' phần rẻ (D − M)
2=M2-C2 ' phần đắt (M − C)
3=(D2-M2)/((D2-M2)+(M2-C2))*Q2 ' lượng rẻ
4=(M2-C2)/((D2-M2)+(M2-C2))*Q2 ' lượng đắt
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}
6Các câu hỏi thường gặp
Nếu mục tiêu không nằm giữa hai giá trị? Khi đó, không có hỗn hợp nào của hai giá trị có thể đạt được — một pha trộn của thứ 30 luôn hạ cánh giữa 30. Công cụ này gắn cờ thay vì trả về tỷ lệ giả.
Đơn vị có quan trọng không? Không. Tỷ lệ phụ thuộc chỉ vào sự khác biệt trên một thang đo nhất quán, vì vậy giá cả, tỷ lệ phần trăm, và mg/mL đều hoạt động — chỉ giữ cả ba đầu vào trong cùng một đơn vị.
Tôi có thể sử dụng nó cho ba hoặc nhiều thành phần không? Công cụ này xử lý trường hợp hai thành phần. Các vấn đề có ba hoặc nhiều thành phần có nhiều câu trả lời hợp lệ và thường được giải quyết bằng cách ghép nối các thành phần hoặc với các phương trình tuyến tính.
Alligation có giống như trung bình có trọng số không? Chúng là nghịch đảo. Một trung bình có trọng số (alligation trung bình) biến lượng thành giá trị hỗn hợp; alligation thay thế biến giá trị mục tiêu thành lượng.
Nguồn
- Alligation — Wikipedia — định nghĩa alligation thay thế và trung bình và quy tắc cơ bản.
- Alligation Calculator — Omni Calculator — dạng dựa trên nồng độ được sử dụng trong dược phẩm, với các ví dụ đã được làm.
- Pharmaceutical calculations by alligation method — EGPAT — hướng dẫn từ đầu của sơ đồ chéo alligation cho pha chế.