Tỉ lệ là trọng số của từng đồng vị
Dùng hai dãy cùng vị trí: số khối `12, 13` và tỉ lệ `98.89%, 1.11%`. Theo dữ liệu mẫu này, giá trị trung bình là `(12×98.89 + 13×1.11)/100 = 12.0111`. Đây là kết quả theo **số khối và tỉ lệ đã cho trong bài**, không phải lời khẳng định về giá trị nguyên tử khối đo chính xác ngoài bài học. Hai dãy phải cùng độ dài và không rỗng; tổng phần trăm phải là 100 để phép chia cho 100 là trung bình đúng. Nếu thứ tự hai dãy bị lệch, một đồng vị sẽ nhận sai tỉ lệ.
Kiểm dữ liệu rồi nhân theo từng cặp
```python
from math import isfinite
def khoi_luong_trung_binh(so_khoi, ti_le):
if not so_khoi or len(so_khoi) != len(ti_le):
raise ValueError("Hai dãy phải không rỗng và cùng độ dài")
if any(not isfinite(m) or m <= 0 for m in so_khoi):
raise ValueError("Số khối phải dương")
if any(not isfinite(p) or p < 0 or p > 100 for p in ti_le):
raise ValueError("Tỉ lệ phải trong khoảng 0–100")
if abs(sum(ti_le) - 100) > 1e-9:
raise ValueError("Tổng tỉ lệ phải bằng 100%")
return sum(m * p for m, p in zip(so_khoi, ti_le)) / 100
```
Gọi `khoi_luong_trung_binh([12, 13], [98.89, 1.11])` cho `12.0111`. Có thể lưu hàm vào `cong_thuc_hoa.py` rồi nhập ở tệp chính. `zip` ghép phần tử cùng chỉ số; điều kiện độ dài ở đầu ngăn `zip` âm thầm bỏ phần tử thừa. Nếu chỉ có một đồng vị chiếm 100%, hàm vẫn tính được giá trị của nó; đây là trường hợp tổng quát hợp lí của công thức.
Bài luyện
Với số khối 12, 13 và tỉ lệ 98.89%, 1.11%, giá trị theo công thức là gì?
(12×98.89+13×1.11)/100=12.0111.
Trung bình đều bỏ qua tỉ lệ.
13 không phải giá trị trung bình.
Quên chia 100.
Lời giải
Nhân từng số khối với phần trăm tương ứng rồi chia 100 được 12.0111.
Bài luyện
Vì sao hai dãy số khối và tỉ lệ phải cùng độ dài?
Công thức cộng các tích theo cặp.
Độ dài không làm các số bằng nhau.
Tỉ lệ có thể khác 50%.
Không có bước sắp.
Lời giải
Mỗi đồng vị đóng góp một tích số_khối×tỉ_lệ; thiếu hoặc thừa tỉ lệ làm ghép cặp sai.
Bài luyện
Nếu các tỉ lệ chỉ cộng được 90%, vì sao hàm báo lỗi?
Thiếu 10% trọng số nên kết quả chưa đại diện đầy đủ.
Phép chia 90/100 vẫn tính được nhưng không đúng dữ liệu.
Số khối 12,13 hợp lệ.
Python tính được float.
Lời giải
Công thức giả định toàn bộ tỉ lệ cộng thành 100%; tổng 90% thiếu một phần dữ liệu.
Đang học