Khử căn bậc ba $\sqrt[3]{a+b\sqrt c}=q+p\sqrt d$

Điều kiện cần và đủ để một căn bậc ba lồng nhau tháo được, cho $c$ tùy ý — kể cả khi $c$ có nhân tử chính phương: rút $c=k^2d$ về radicand squarefree, chuẩn $N=a^2-cb^2$ phải là lập phương đúng, rồi $4q^3-3mq=a$ (đúng dạng công thức nhân ba $4\cos^3\theta-3\cos\theta$) và $p=bk/(4q^2-m)$ tự động nguyên. Rồi ba mức nới lỏng: $q,p$ hữu tỉ — luôn là nửa nguyên và chỉ khi $d\equiv1\pmod4$; $a,b,c$ hữu tỉ; và $c<0$, nơi căn bậc ba là số phức, có tới ba đáp số (chỉ khi $d=-3$) và việc khử căn đúng bằng bài toán chia ba góc. Kèm máy khử căn tương tác, hai hình HTML5 Canvas và mã nguồn Python.

Khử căn bậc ba của a + b·√c

Khử căn bậc ba $\sqrt[3]{a+b\sqrt c}$

Ở phổ thông ta quen với những đẳng thức "phù thuỷ" kiểu $\sqrt[3]{7+5\sqrt2}=1+\sqrt2$ hay $\sqrt[3]{26+15\sqrt3}=2+\sqrt3$. Chúng luôn được đưa ra dưới dạng đã biết đáp án rồi kiểm tra lại bằng cách lập phương. Câu hỏi thật sự thú vị lại là câu hỏi ngược:

Cho trước $a, b, c$ nguyên. Làm sao biết $\sqrt[3]{a+b\sqrt c}$ có tháo được thành $q+p\sqrt d$ với $q,p$ nguyên hay không — và nếu được thì tìm $q,p$ thế nào mà không phải mò?

Bài viết này trả lời trọn vẹn câu hỏi đó: một điều kiện cần và đủ chỉ gồm hai phép kiểm tra số học, một thuật toán chạy trong nháy mắt, và lời giải thích vì sao phương trình then chốt $4q^3-3mq=a$ lại trông giống hệt công thức nhân ba $4\cos^3\theta-3\cos\theta=\cos3\theta$.

Lời giải được phát biểu cho $c$ tùy ý, kể cả khi $c$ có nhân tử chính phương như $c=8$ hay $c=108$. Chìa khoá cho trường hợp đó chỉ là một bước chuẩn hoá vô hại: viết $c=k^2d$ với $d$ squarefree thì $b\sqrt c=(bk)\sqrt d$, nên mọi thứ quy về radicand squarefree — và khi ấy điều kiện thứ ba (tính nguyên của $p$) tự động thoả, chỉ còn hai điều kiện phải kiểm. Chi tiết ở mục 4 và 5.

Sau đó, từ mục 12, ta tháo dần các giả thiết: cho $q,p$ hữu tỉ (đáp số hoá ra luôn là nửa nguyên, và chỉ nửa nguyên khi $d\equiv1\pmod4$ — ví dụ $\sqrt[3]{2+\sqrt5}=\tfrac{1+\sqrt5}{2}$, tỉ lệ vàng); cho $a,b,c$ hữu tỉ; rồi cho $c<0$, khi đó căn bậc ba là số phức, có ba giá trị, có thể có tới ba đáp số cùng lúc (chỉ khi $d=-3$), và bài toán khử căn trở thành đúng bài toán chia ba góc — $\sqrt[3]{2+11i}=2+i$ của Bombelli và chuyện không dựng được $\cos20^\circ$ nằm cùng một chỗ.

Giả thiết cho mục 1–11: $c$ là số nguyên dương không chính phương (nên $\sqrt c$ vô tỉ; $c$ vẫn được phép chứa nhân tử chính phương), còn $a,b,q,p$ là các số nguyên và $b\neq0$. Mục 12–16 nới lần lượt từng giả thiết đó; máy khử căn phía dưới chạy sẵn bản tổng quát, nên nhận cả $c$ âm và cả đáp số nửa nguyên.

Máy khử căn — thử ngay

Nhập $a,b,c$ rồi bấm Khử căn. Máy chạy bản tổng quát (mục 5 $+$ 12 $+$ 14): ẩn là $u=2q$ nên bắt được cả đáp số nửa nguyên, và $c$ được phép âm — khi đó đáp số là số phức và có thể có tới ba. Toàn bộ tính toán dùng số nguyên lớn BigInt nên không sai số; từng bước đều in ra để bạn đối chiếu.

Ví dụ nhanh:
Nửa nguyên & phức:

1. Chiều thuận: sinh $a,b$ từ $q,p$

Trước khi đi tìm điều kiện, hãy làm việc dễ trước: giả sử đã có $q,p$ và lập phương ra xem được gì.

$$(q+p\sqrt c)^3=q^3+3q^2p\sqrt c+3qp^2c+p^3c\sqrt c=(q^3+3cp^2q)+(3q^2p+cp^3)\sqrt c$$

Vì $c$ không chính phương nên $\sqrt c$ vô tỉ, do đó $\{1,\sqrt c\}$ độc lập tuyến tính trên $\mathbb Q$: hai số dạng $u+v\sqrt c$ bằng nhau khi và chỉ khi từng phần bằng nhau. Đồng nhất phần hữu tỉ và phần chứa $\sqrt c$:

$$a=q\,(q^2+3cp^2),\qquad b=p\,(3q^2+cp^2)$$

Đây là cỗ máy sinh: cho $q,p$ chạy khắp $\mathbb Z^2$, hai công thức trên quét đúng mọi cặp $(a,b)$ khử được — không thiếu cặp nào. Mục 8 sẽ vẽ toàn bộ tập điểm đó ra mặt phẳng $(a,b)$ để thấy nó thưa đến mức nào. Phần còn lại của bài viết là chuyện đảo ngược cỗ máy này.

2. Bất biến then chốt: chuẩn $N=a^2-cb^2$

Hệ hai phương trình bậc ba hai ẩn ở mục 1 trông rất khó đảo. Mẹo cổ điển: dùng phép liên hợp $\sqrt c\mapsto-\sqrt c$. Đây là một tự đẳng cấu của trường $\mathbb Q(\sqrt c)$, nên nó giao hoán với mọi phép cộng và nhân — cứ áp vào cả hai vế của $(q+p\sqrt c)^3=a+b\sqrt c$ là ra ngay đẳng thức thứ hai:

$$(q-p\sqrt c)^3=a-b\sqrt c\quad\Longrightarrow\quad \sqrt[3]{a-b\sqrt c}=q-p\sqrt c$$

Được "một tặng một": khử được cái này thì cũng khử được cái liên hợp, với cùng $q,p$. Bây giờ nhân hai đẳng thức lập phương với nhau, dùng $(x+y)(x-y)=x^2-y^2$ cho cả hai vế:

$$N\;:=\;a^2-cb^2\;=\;\big(q^2-cp^2\big)^3$$

Đại lượng $N(u+v\sqrt c)=u^2-cv^2$ chính là chuẩn (norm) của $\mathbb Z[\sqrt c]$, và nó có tính nhân: $N(xy)=N(x)N(y)$. Chuẩn của một lập phương thì phải là lập phương — đó là toàn bộ nội dung của đẳng thức trên, và nó cho ta điều kiện cần đầu tiên, kiểm tra được ngay bằng mắt:

Điều kiện 1. $N=a^2-cb^2$ buộc phải là lập phương đúng trong $\mathbb Z$. Khi đó đặt $\;m=\sqrt[3]{N}=q^2-cp^2\in\mathbb Z\;$ (chú ý: $m$ có thể âm, ví dụ $m=-1$).

Cái hay là $m$ tuy định nghĩa bằng $q,p$ chưa biết, nhưng lại tính được chỉ từ $a,b,c$. Một ẩn phụ đã bị "bắt sống". Hệ quả nhỏ mà dùng liên tục ở mục 3: $$cp^2=q^2-m .$$

3. Đưa về một phương trình bậc ba theo $q$

Thay $cp^2=q^2-m$ vào $a=q^3+3cp^2q$ để tống cổ $p$ ra khỏi phương trình:

$$a=q^3+3q(q^2-m)\;\Longleftrightarrow\;\boxed{\,a=q\,(4q^2-3m)\,}\;\Longleftrightarrow\;4q^3-3mq-a=0$$

Chỉ còn một ẩn nguyên duy nhất, và quan trọng hơn: vì $a=q(4q^2-3m)$ nên $q$ là một ước của $a$. Bài toán "khử căn bậc ba" vừa biến thành bài toán "thử các ước của $a$" — hữu hạn và nhanh.

Cách suy ra thứ hai (đối xứng, đáng nhớ hơn). Đặt $t=\sqrt[3]{a+b\sqrt c}$ và $s=\sqrt[3]{a-b\sqrt c}$ (căn bậc ba thực). Mục 2 cho $t=q+p\sqrt c$, $s=q-p\sqrt c$, nên $$t+s=2q,\qquad ts=\sqrt[3]{N}=m,\qquad t^3+s^3=2a .$$ Ráp vào hằng đẳng thức $t^3+s^3=(t+s)^3-3ts(t+s)$: $$2a=(2q)^3-3m(2q)=8q^3-6mq\;\Longleftrightarrow\;4q^3-3mq=a .$$ Nói cách khác: $t$ và $s$ là hai nghiệm của $X^2-2qX+m=0$. Từ góc nhìn này, $q$ và $m$ chỉ là tổng và tích của hai căn bậc ba liên hợp.

Vì sao dạng $4q^3-3mq$ trông quen? Với $m>0$, đổi biến $q=\sqrt m\,\cos\theta$ thì phương trình thành $m^{3/2}\big(4\cos^3\theta-3\cos\theta\big)=a$, tức $\cos3\theta=a/m^{3/2}$ — đúng công thức nhân ba. Với $m<0$ thì phép đổi biến $q=\sqrt{|m|}\sinh u$ cho $4\sinh^3u+3\sinh u=\sinh 3u$. Đây không phải trùng hợp: nó chính là mối liên hệ giữa khử căn bậc ba và bài toán chia ba góc, sẽ nói ở mục 10.

Hình 1 — đường bậc ba $y=4q^3-3mq$ và đường ngang $y=a$

Nghiệm của bài toán là giao điểm của đường cong với đường ngang $y=a$, và ta chỉ chấp nhận giao điểm nằm đúng trên một vạch nguyên — hoặc nửa nguyên khi $d\equiv1\pmod4$ (mục 12), khi đó hình vẽ thêm các vạch xám nhạt. Hình dưới đây tự cập nhật theo $a,b,c$ bạn nhập ở máy khử căn phía trên (bấm Khử căn để vẽ lại); nhập $c<0$ thì sẽ thấy $y=a$ chui vào trong dải vàng và có ba giao điểm (mục 14).

Một quan sát làm mọi thứ gọn hẳn: đường cong luôn cắt $y=a$ tại đúng $1$ điểm. Với $m>0$, đường bậc ba có cực đại địa phương tại $q=-\tfrac{\sqrt m}{2}$ (giá trị $+m^{3/2}$) và cực tiểu tại $q=+\tfrac{\sqrt m}{2}$ (giá trị $-m^{3/2}$) — dải màu vàng trên hình. Ba nghiệm thực chỉ xuất hiện khi $y=a$ chui vào trong dải, tức $a^2<m^3$. Nhưng $$a^2-m^3=a^2-N=a^2-(a^2-cb^2)=cb^2>0\quad(\text{vì } c>0,\ b\neq0),$$ nên $y=a$ luôn nằm ngoài dải. Vậy phương trình $4q^3-3mq=a$ có đúng một nghiệm thực, kéo theo: nếu có nghiệm nguyên thì nghiệm đó là duy nhất, và $(q,p)$ tìm được là duy nhất. (Cũng hợp lẽ: một số thực chỉ có một căn bậc ba thực.)

Hệ quả thực dụng: không cần lo "chọn nghiệm nào" — cứ tìm thấy là xong. Và vì nghiệm thực duy nhất đó bằng $\tfrac12\big(\sqrt[3]{a+b\sqrt c}+\sqrt[3]{a-b\sqrt c}\big)$, ta còn có cách tính $q$ tức thời (mục 9). Toàn bộ lập luận này dựa vào $cb^2>0$: với $c<0$ thì dấu đảo, $y=a$ luôn nằm trong dải và bài toán có ba nghiệm thực — đó là nội dung mục 14.

4. Chuẩn hoá radicand: $c=k^2d$ với $d$ squarefree

Mọi thứ ở mục 1–3 đúng khi ta đòi đáp số có dạng $q+p\sqrt c$. Nhưng đòi hỏi đó quá hẹp. Ví dụ nhỏ sau cho thấy vấn đề: với $\sqrt[3]{20+7\sqrt8}$, mọi bước đều chạy trơn ($N=8=2^3$, $m=2$, $q=2$), nhưng hệ số cuối lại ra $\dfrac{7}{4\cdot4-2}=\dfrac12$ — không nguyên. Trong khi đó đáp số thật thì đẹp long lanh: $\sqrt[3]{20+7\sqrt8}=2+\sqrt2$. Nó chỉ "không nguyên" vì ta cố viết theo $\sqrt8$ thay vì $\sqrt2$.

Cách chữa đơn giản đến mức gần như hiển nhiên: $b\sqrt c$ không đổi giá trị khi rút nhân tử chính phương ra khỏi căn. Viết

$$c=k^2d,\qquad d\ \text{squarefree (không nhân tử chính phương)},\qquad k=\max\{k: k^2\mid c\}$$

Khi đó $\sqrt c=k\sqrt d$, nên $\;b\sqrt c=(bk)\sqrt d$. Đặt $B=bk$, bài toán $\sqrt[3]{a+b\sqrt c}$ chính là bài toán $\sqrt[3]{a+B\sqrt d}$ với radicand đã squarefree — và với radicand squarefree thì ta có thuật toán trọn vẹn. Ví dụ trên: $8=2^2\cdot2$ nên $k=2$, $d=2$, $B=7\cdot2=14$, tức $(a,b,c)=(20,7,8)\;\to\;(a,B,d)=(20,14,2)$.

Nhận xét quan trọng: $N$, $m$, $q$ đều là bất biến của phép chuẩn hoá. Tính chuẩn theo bộ mới: $$N=a^2-dB^2=a^2-d(bk)^2=a^2-(dk^2)b^2=a^2-cb^2 .$$ Vậy $N$ không phụ thuộc vào việc có rút gọn hay không — cứ tính thẳng từ $a,b,c$ ban đầu. Kéo theo $m=\sqrt[3]N$ không đổi, và phương trình $4q^3-3mq-a=0$ (chỉ chứa $a$ và $m$!) cho cùng một $q$.

Chỉ có hai thứ thay đổi: hệ số $p$ tính theo $B=bk$, và căn trong đáp số là $\sqrt d$ chứ không phải $\sqrt c$. Hai cách viết khớp nhau vì $$p\sqrt d=\frac{bk}{4q^2-m}\,\sqrt d=\frac{b}{4q^2-m}\,\sqrt c .$$ Đó đúng là lời giải thích cho hiện tượng $\tfrac12$ ở trên: hệ số theo $\sqrt c$ có thể là phân số, còn hệ số theo $\sqrt d$ thì luôn nguyên (chứng minh ở mục 5).

Nói cách khác: điều kiện 3 ở phiên bản "theo $\sqrt c$" không phải một rào cản thật sự, nó chỉ là hậu quả của việc chọn sai đơn vị đo. Sau khi chuẩn hoá, nó biến mất khỏi định lý.

5. Định lý tổng quát và thuật toán

Định lý (khử căn bậc ba, $c$ tùy ý).

Cho $a,b\in\mathbb Z$, $b\neq0$, $c\in\mathbb Z_{>0}$ không chính phương; viết $c=k^2d$ với $d$ squarefree và đặt $B=bk$. Khi đó $\sqrt[3]{a+b\sqrt c}$ khử được về dạng $q+p\sqrt d$ với $q,p\in\mathbb Z$ khi và chỉ khi:

  1. $N=a^2-cb^2$ là lập phương đúng; đặt $m=\sqrt[3]N\in\mathbb Z$;
  2. $4q^3-3mq-a=0$ có nghiệm nguyên $q$ (chỉ cần thử các ước của $a$).

Khi đó nghiệm là duy nhất và

$$\boxed{\;p=\frac{bk}{4q^2-m}\ \ (\text{tự động nguyên}),\qquad \sqrt[3]{a+b\sqrt c}=q+p\sqrt d\;}$$

Khi $c$ đã squarefree thì $k=1$, $d=c$, $B=b$ — ta thu lại đúng phát biểu quen thuộc với ba điều kiện, trong đó điều kiện thứ ba trở thành hiển nhiên.

Thuật toán

  1. Rút $c=k^2d$ với $d$ squarefree, đặt $B=bk$. (Ví dụ $c=108=6^2\cdot3\Rightarrow k=6,\ d=3$.)
  2. Tính $N=a^2-cb^2$. Nếu $N$ không là lập phương đúng $\Rightarrow$ không khử được. Ngược lại $m=\sqrt[3]N$ (nhớ rằng $m$ có thể âm).
  3. Với từng ước nguyên $q$ của $a$ (cả âm và dương), thử $4q^3-3mq=a$. Không có $q$ nào thoả $\Rightarrow$ không khử được.
  4. Tính $p=\dfrac{B}{4q^2-m}$ — chắc chắn nguyên — và trả về $q+p\sqrt d$.

Chứng minh chiều đủ (và vì sao $p$ tự động nguyên)

Chiều cần đã xong ở mục 2–3, áp cho bộ $(a,B,d)$: nếu $\sqrt[3]{a+B\sqrt d}=q+p\sqrt d$ thì $N=a^2-dB^2=(q^2-dp^2)^3$ và $4q^3-3mq=a$; mà $a^2-dB^2=a^2-cb^2$ nên hai điều kiện phát biểu được thẳng theo $a,b,c$. Ngược lại, giả sử $N=m^3$ và $a=4q^3-3mq$ với $q\in\mathbb Z$. Khai triển $a^2-m^3$ theo $q,m$ rồi nhận dạng, ta có một đẳng thức đại số thuần tuý:

$$dB^2=cb^2=a^2-m^3=(4q^3-3mq)^2-m^3=16q^6-24mq^4+9m^2q^2-m^3=(q^2-m)\,(4q^2-m)^2$$

Nếu $4q^2-m=0$ thì vế phải bằng $0$, buộc $b=0$ — trái giả thiết. Vậy $4q^2-m\neq0$, đặt được số hữu tỉ $p=\dfrac{B}{4q^2-m}$, và chia hai vế cho $(4q^2-m)^2$:

$$d\,p^2=q^2-m\;\in\mathbb Z$$

Bổ đề (điểm mấu chốt của việc chuẩn hoá). Nếu $d$ squarefree, $p\in\mathbb Q$ và $d\,p^2\in\mathbb Z$ thì $p\in\mathbb Z$.
Chứng minh. Viết $p=\dfrac uv$ tối giản, $v>0$. Từ $\dfrac{du^2}{v^2}\in\mathbb Z$ suy ra $v^2\mid du^2$; vì $\gcd(u,v)=1$ nên $\gcd(u^2,v^2)=1$, do đó $v^2\mid d$. Nhưng $d$ squarefree nên $v^2\mid d$ chỉ có thể khi $v=1$. $\square$
(Đây chính xác là chỗ giả thiết squarefree được dùng, và cũng là chỗ phiên bản "theo $\sqrt c$" thất bại: với $c=8$ không squarefree, $8p^2=2\in\mathbb Z$ vẫn cho $p=\tfrac12$ hữu tỉ.)

Vậy $p\in\mathbb Z$. Chỉ việc lắp lại vào công thức mục 1 (với bộ $(a,B,d)$) là kiểm tra xong:

$$q^3+3dp^2q=q^3+3q(q^2-m)=4q^3-3mq=a,\qquad p\,(3q^2+dp^2)=p\,(3q^2+q^2-m)=p\,(4q^2-m)=B$$

Tức $(q+p\sqrt d)^3=a+B\sqrt d=a+b\sqrt c$. Vì căn bậc ba thực là duy nhất, $\sqrt[3]{a+b\sqrt c}=q+p\sqrt d$. Còn tính duy nhất của $(q,p)$ thì đã có từ mục 3: phương trình $4q^3-3mq=a$ chỉ có một nghiệm thực (vì $a^2-m^3=dB^2>0$), nên không thể có hai đáp số khác nhau. $\blacksquare$

Chi phí thuật toán: một phép nhân số lớn, một căn bậc ba nguyên, và việc liệt kê ước của $a$ — bước duy nhất "nặng". Mục 9 cho cách bỏ hẳn bước liệt kê ước, đưa thuật toán về $O(1)$ phép toán trên số nguyên lớn.

6. Ví dụ khử được

Bấm vào ô ví dụ để nạp vào máy khử căn ở đầu bài và xem lại từng bước.

Ví dụ 1 — $\sqrt[3]{7+5\sqrt2}$, $c=2$ (đã squarefree)

$k=1,\ d=2,\ B=5$. Chuẩn $N=49-2\cdot25=-1=(-1)^3$ nên $m=-1$. Phương trình $4q^3+3q-7=0$; ước của $7$ là $\pm1,\pm7$, thử $q=1$: $4+3-7=0$ ✓. Rồi $p=\dfrac{5}{4-(-1)}=1$.

$$\sqrt[3]{7+5\sqrt2}=1+\sqrt2$$

Ví dụ 2 — $\sqrt[3]{26+15\sqrt3}$, $c=3$

$N=676-3\cdot225=1=1^3$, $m=1$. Phương trình $4q^3-3q-26=0$, thử $q=2$: $32-6-26=0$ ✓. $p=\dfrac{15}{16-1}=1$.

$$\sqrt[3]{26+15\sqrt3}=2+\sqrt3$$

Ví dụ 3 — $\sqrt[3]{207+94\sqrt5}$ (với $m$ lớn)

$N=207^2-5\cdot94^2=42849-44180=-1331=(-11)^3$ nên $m=-11$. Phương trình $4q^3+33q-207=0$, thử $q=3$: $108+99-207=0$ ✓. $p=\dfrac{94}{4\cdot9-(-11)}=\dfrac{94}{47}=2$.

$$\sqrt[3]{207+94\sqrt5}=3+2\sqrt5$$

Ví dụ 4 — $\sqrt[3]{20+7\sqrt8}$: $c$ có nhân tử chính phương

  • Chuẩn hoá: $8=2^2\cdot2\Rightarrow k=2,\ d=2,\ B=14$, tức $20+7\sqrt8=20+14\sqrt2$.
  • $N=20^2-8\cdot7^2=400-392=8=2^3\Rightarrow m=2$.
  • $4q^3-6q-20=0$, thử $q=2$: $32-12-20=0$ ✓.
  • $p=\dfrac{14}{4\cdot4-2}=\dfrac{14}{14}=1$.
$$\sqrt[3]{20+7\sqrt8}=2+\sqrt2$$

Kiểm tra: $(2+\sqrt2)^3=8+12\sqrt2+12+2\sqrt2=20+14\sqrt2=20+7\sqrt8$ ✓. Nếu cố viết theo $\sqrt8$ thì hệ số là $\tfrac12$ — đúng nhưng không nguyên.

Ví dụ 5 — $\sqrt[3]{10+\sqrt{108}}$: $b=1$ nhưng $k=6$

$108=6^2\cdot3\Rightarrow k=6,\ d=3,\ B=6$. $N=100-108\cdot1=-8=(-2)^3$ nên $m=-2$. Phương trình $4q^3+6q-10=0$ có $q=1$. $p=\dfrac{6}{4-(-2)}=1$.

$$\sqrt[3]{10+\sqrt{108}}=1+\sqrt3$$

Chú ý: hệ số ban đầu $b=1$, nhưng $p=1$ lại đi kèm $\sqrt3$ — phải qua $B=bk=6$ mới ra đúng. Đây là ví dụ điển hình cho việc không thể bỏ bước chuẩn hoá.

Ví dụ 6 — số to: $\sqrt[3]{10621+4338\sqrt6}$

$N=10621^2-6\cdot4338^2=112805641-112909464=-103823=(-47)^3$, $m=-47$. Ước của $10621=13\cdot19\cdot43$ có $8$ ước dương (và $16$ ước nguyên cả hai dấu); thử đến $q=13$: $4\cdot2197+141\cdot13=8788+1833=10621$ ✓. Rồi $p=\dfrac{4338}{4\cdot169+47}=\dfrac{4338}{723}=6$.

$$\sqrt[3]{10621+4338\sqrt6}=13+6\sqrt6$$

Mò tay thì gần như vô vọng, nhưng thuật toán vẫn chỉ mất vài phép tính. Đây là chỗ nó thật sự có giá.

7. Khi nào thật sự "bó tay"

Sau khi chuẩn hoá radicand, rào cản "hệ số không nguyên" đã bị loại. Chỉ còn đúng hai rào cản bản chất — và cả hai đều phát hiện được ngay lập tức.

Rào cản 1 — $N$ không là lập phương

Dừng ngay ở bước 2, không cần thử gì thêm.

  • $\sqrt[3]{2+\sqrt2}$: $N=4-2=2$ — không lập phương.
  • $\sqrt[3]{5+2\sqrt3}$: $N=25-12=13$ — không lập phương.
  • $\sqrt[3]{44+18\sqrt{12}}$: $N=1936-3888=-1952$, kẹp giữa $(-12)^3=-1728$ và $(-13)^3=-2197$.

Rào cản 2 — có $m$ nhưng $q$ không nguyên

$N$ là lập phương, nhưng $4q^3-3mq=a$ vô nghiệm nguyên.

  • $\sqrt[3]{1+\sqrt2}$: $N=-1=(-1)^3$, $m=-1$, nhưng $4q^3+3q-1=0$ chỉ có nghiệm thực $q^*\approx0.298036$ — không nguyên (ước của $1$ chỉ có $\pm1$).
  • $\sqrt[3]{3+2\sqrt2}$: $N=9-8=1$, $m=1$, phương trình $4q^3-3q-3=0$ vô nghiệm nguyên. (Cái bẫy quen: $3+2\sqrt2=(1+\sqrt2)^2$ nên nó là một bình phương đẹp — $\sqrt{3+2\sqrt2}=1+\sqrt2$ — chứ không phải lập phương.)

Tóm lại, với $c$ bất kỳ (không chính phương): rút $c=k^2d$ để về radicand squarefree, rồi áp đúng hai điều kiện — $N$ lập phương $\to$ $q$ nguyên — và lấy $p=\dfrac{bk}{4q^2-m}$. Không có trường hợp thứ ba.

Ghi chú: câu "không có trường hợp thứ ba" ở trên là trong khuôn khổ $q,p$ nguyên. Nếu cho phép $q,p$ hữu tỉ thì rào cản 2 hẹp lại đáng kể — điều kiện đúng là "$u^3-3mu=2a$ có nghiệm nguyên $u=2q$", và $\sqrt[3]{2+\sqrt5}=\tfrac{1+\sqrt5}{2}$ là ví dụ bị phiên bản nguyên loại oan (mục 12). Hai ví dụ ở rào cản 2 phía trên thì vẫn bó tay kể cả với $q,p$ hữu tỉ, vì $d=2\equiv2\pmod4$. Trường hợp $c<0$ (căn bậc ba phức) ở mục 14, còn nếu đòi khử về dạng có căn khác (chẳng hạn $u+v\sqrt[3]{w}$) thì đó là bài toán denesting tổng quát — xem mục 15.

8. Bản đồ các cặp khử được trong mặt phẳng $(a,B)$

Quay lại cỗ máy sinh ở mục 1, lần này với radicand squarefree $d$: mỗi $(q,p)\in\mathbb Z^2$ cho đúng một cặp $$\big(a,\;B\big)=\Big(q\,(q^2+3dp^2),\;\;p\,(3q^2+dp^2)\Big).$$ Hình 2 vẽ toàn bộ tập ảnh đó — tức tập tất cả các $\sqrt[3]{a+B\sqrt d}$ khử được. Lưới mảnh là ảnh của lưới nguyên $\mathbb Z^2$ dưới phép lập phương (giữ $p$ cố định, cho $q$ chạy liên tục, và ngược lại); các đĩa tròn là những điểm nguyên thật sự.

Radicand: d = 2 (lấy từ ô $c$ ở đầu bài, sau khi rút $c=k^2d$)

Kéo để di chuyển; phóng to bằng nút $+/-$ hoặc lăn chuột khi giữ Ctrl/⌘. Trỏ vào một điểm để xem $(q,p)$ và chuẩn $m=q^2-dp^2$; bấm vào điểm để nạp $(a,B,d)$ vào máy khử căn ở đầu bài. Đĩa tròn là $(q,p)\in\mathbb Z^2$, ô vuông là các điểm nửa nguyên — chỉ xuất hiện khi $d\equiv1\pmod4$ (mục 12), và chỉ vẽ những điểm cho $(a,B)$ nguyên. Màu theo dấu của $m$: $m>0$, $m<0$, $m=0$. Khi trỏ vào một điểm, hình vẽ thêm hyperbol chuẩn $a^2-dB^2=m^3$ đi qua nó — mọi điểm khử được với cùng $m$ đều nằm trên đường này. Nhập $c<0$ ở máy khử căn thì $d<0$: khi ấy $m>0$ với mọi điểm (nên toàn màu tím) và đường chuẩn trở thành ellipse $a^2+|d|B^2=m^3$ — chỉ chứa hữu hạn điểm nguyên (mục 14).

Hai điều đáng để ý trên hình. Thứ nhất, tập điểm cực kỳ thưa và loãng rất nhanh: $a$ và $B$ lớn cỡ bậc ba của $q,p$, nên trong một khung nhìn cỡ vài trăm chỉ có vài chục điểm — xác suất một cặp $(a,B)$ "bốc ngẫu nhiên" mà khử được gần như bằng $0$. Thứ hai, ảnh của lưới nguyên là một lưới cong chứ không phải lưới thẳng: đó là dấu vết hình học của phép nâng lũy thừa ba trong $\mathbb Z[\sqrt d]$, và các hyperbol $a^2-dB^2=m^3$ chính là các "đường đồng mức chuẩn" mà bước 2 của thuật toán đang kiểm tra.

9. Mẹo: lấy $q$ trực tiếp, khỏi cần liệt kê ước

Bước liệt kê ước của $a$ là bước tốn kém duy nhất (và với $a$ vài chục chữ số thì bất khả thi). Nhưng mục 3 đã cho ta chìa khoá: $t=\sqrt[3]{a+B\sqrt d}$ và $s=\sqrt[3]{a-B\sqrt d}$ thoả $t+s=2q$. Vậy chỉ cần một phép tính số thực rồi làm tròn:

$$q=\operatorname{round}\!\left(\frac{\sqrt[3]{a+B\sqrt d}+\sqrt[3]{a-B\sqrt d}}{2}\right), \qquad p=\frac{\sqrt[3]{a+B\sqrt d}-\sqrt[3]{a-B\sqrt d}}{2\sqrt d}$$

Vì nghiệm thực là duy nhất (mục 3), nếu tồn tại $q$ nguyên thì nó chính là số làm tròn ở trên — không có ứng viên nào khác. Sau đó kiểm tra lại bằng số nguyên: $4q^3-3mq\overset?=a$ rồi $p=\dfrac{bk}{4q^2-m}$. Phép làm tròn chỉ là đoán; phần kết luận vẫn hoàn toàn chính xác vì được xác nhận bằng số học nguyên.

Với $a,b$ rất lớn, số thực dấu phẩy động sẽ hết độ chính xác; khi đó thay bằng vài vòng Newton trên số nguyên cho $f(q)=4q^3-3mq-a$, hoặc chặt nhị phân trên $q$ (vì $f$ đơn điệu ngoài dải $|q|\le\sqrt m/2$, và ta đã biết nghiệm nằm ngoài dải đó). Máy khử căn ở đầu bài dùng cả hai: nó thử ứng viên làm tròn trước, chỉ liệt kê ước khi $|a|$ đủ nhỏ để việc đó là miễn phí.

10. Vì sao lại là công thức nhân ba: liên hệ với casus irreducibilis

Phương trình $4q^3-3mq=a$ không hề giống công thức nhân ba một cách tình cờ. Giải một phương trình bậc ba bằng công thức Cardano bao giờ cũng dẫn tới một biểu thức dạng $\sqrt[3]{A+\sqrt{\Delta}}+\sqrt[3]{A-\sqrt{\Delta}}$ — đúng cặp $t,s$ ở mục 3. Bài toán "khử căn bậc ba" và bài toán "tìm nghiệm hữu tỉ của phương trình bậc ba" là một, chỉ đọc từ hai đầu khác nhau.

Điểm khác biệt nằm ở dấu của $\Delta$. Ở bài này $\Delta=a^2-m^3=dB^2>0$, nên $t,s$ đều thực và đường bậc ba chỉ cắt $y=a$ một lần — trường hợp "dễ", và đó là lý do thuật toán gọn gàng. Nhưng nếu ta làm đúng các phép biến đổi ấy với $c<0$, tức khử $\sqrt[3]{a+b\sqrt{-e}}$ với $e>0$, thì hai đại lượng đổi vai: chuẩn thành $N=a^2+eb^2>0$ còn $\Delta=a^2-m^3=cb^2=-eb^2<0$. Điều kiện $|a|<m^{3/2}$ khi ấy luôn đúng, nên phương trình bậc ba luônba nghiệm thực — mục 14 khai triển đầy đủ trường hợp này.

Đó chính là casus irreducibilis: một phương trình bậc ba với ba nghiệm thực nhưng bất khả quy trên $\mathbb Q$ thì không có nghiệm hữu tỉ, nên theo định lý của bài này, căn bậc ba phức $\sqrt[3]{a+b\sqrt{-e}}$ không khử được về dạng $q+p\sqrt{-e}$. Nói cách khác: Cardano buộc phải đi vòng qua số phức, và không có cách nào tránh. Trường hợp riêng nổi tiếng nhất là $\cos3\theta=\tfrac12$ với $4x^3-3x=\tfrac12$ — phương trình chia ba góc $60^\circ$, vô nghiệm hữu tỉ, tức không dựng được bằng thước và compa.

Vậy nên có thể nói gọn: khử được căn bậc ba $\Leftrightarrow$ phương trình nhân ba tương ứng có nghiệm hữu tỉ. Với $c>0$ ta luôn ở nhánh "hyperbolic" ($\sinh 3u$) — một nghiệm thực, kiểm tra dễ. Với $c<0$ ta rơi vào nhánh "trigonometric" ($\cos3\theta$) — ba nghiệm thực, và đó là nơi mọi bất khả thi cổ điển trú ngụ. Mục 14 cho thấy ba nghiệm thực ấy chính là phần thực của ba căn bậc ba phức, nên câu chuyện khép kín: khử căn bậc ba phức $=$ chia ba góc.

11. Mã nguồn Python

Cài đặt đúng thuật toán mục 5, dùng số nguyên Python (chính xác tuyệt đối, không dấu phẩy động). Hàm nhận $a,b,c$ và trả về $(q,p,d)$ nghĩa là $\sqrt[3]{a+b\sqrt c}=q+p\sqrt d$, hoặc None nếu không khử được.

from math import isqrt


def icbrt(n: int) -> tuple[int, bool]:
    """Căn bậc ba nguyên (giữ dấu): trả về (r, exact) với r**3 <= |n| sát nhất."""
    sign, m = (-1, -n) if n < 0 else (1, n)
    lo, hi = 0, 1
    while hi ** 3 <= m:          # tìm chặn trên bằng cách nhân đôi
        hi <<= 1
    while lo + 1 < hi:           # chặt nhị phân
        mid = (lo + hi) // 2
        if mid ** 3 <= m:
            lo = mid
        else:
            hi = mid
    return sign * lo, lo ** 3 == m


def squarefree_part(c: int) -> tuple[int, int]:
    """Rút c = k^2 * d với d squarefree. Trả về (k, d)."""
    k, d = 1, c
    i = 2
    while i * i <= d:
        while d % (i * i) == 0:
            d //= i * i
            k *= i
        i += 1
    return k, d


def divisors(n: int) -> list[int]:
    """Mọi ước nguyên của n (cả âm và dương), xếp theo trị tuyệt đối tăng dần."""
    n = abs(n)
    if n == 0:
        return [0]
    ds = set()
    i = 1
    while i * i <= n:
        if n % i == 0:
            ds.add(i)
            ds.add(n // i)
        i += 1
    return sorted(ds | {-x for x in ds}, key=lambda x: (abs(x), x))


def denest_cbrt(a: int, b: int, c: int):
    """Khử căn bậc ba của a + b*sqrt(c).

    Trả về (q, p, d) với sqrt[3]{a + b*sqrt(c)} = q + p*sqrt(d), d squarefree;
    hoặc None nếu không khử được bằng số nguyên.
    """
    if b == 0 or c <= 0:
        raise ValueError("cần b != 0 và c > 0")
    if isqrt(c) ** 2 == c:
        raise ValueError("c chính phương: sqrt(c) đã là số nguyên")

    k, d = squarefree_part(c)          # bước 1: chuẩn hoá radicand
    B = b * k

    m, exact = icbrt(a * a - c * b * b)   # bước 2: N = a^2 - c*b^2 phải là lập phương
    if not exact:
        return None

    for q in divisors(a):                 # bước 3: q phải là ước của a
        if 4 * q ** 3 - 3 * m * q != a:
            continue
        den = 4 * q * q - m               # bước 4: p = B / (4q^2 - m), tự động nguyên
        if den == 0 or B % den != 0:
            continue
        p = B // den
        # kiểm tra lại bằng số nguyên cho chắc: (q + p*sqrt d)^3 == a + B*sqrt d
        if q ** 3 + 3 * d * p * p * q == a and 3 * q * q * p + d * p ** 3 == B:
            return q, p, d
    return None


if __name__ == "__main__":
    tests = [(7, 5, 2), (26, 15, 3), (207, 94, 5), (20, 7, 8),
             (10, 1, 108), (10621, 4338, 6),
             (2, 1, 2), (1, 1, 2), (5, 2, 3), (44, 18, 12)]
    for a, b, c in tests:
        res = denest_cbrt(a, b, c)
        lhs = f"cbrt({a} + {b}·sqrt{c})"
        if res is None:
            print(f"{lhs:28} = không khử được")
        else:
            q, p, d = res
            print(f"{lhs:28} = {q} + {p}·sqrt{d}")

Kết quả chạy:

cbrt(7 + 5·sqrt2)            = 1 + 1·sqrt2
cbrt(26 + 15·sqrt3)          = 2 + 1·sqrt3
cbrt(207 + 94·sqrt5)         = 3 + 2·sqrt5
cbrt(20 + 7·sqrt8)           = 2 + 1·sqrt2
cbrt(10 + 1·sqrt108)         = 1 + 1·sqrt3
cbrt(10621 + 4338·sqrt6)     = 13 + 6·sqrt6
cbrt(2 + 1·sqrt2)            = không khử được
cbrt(1 + 1·sqrt2)            = không khử được
cbrt(5 + 2·sqrt3)            = không khử được
cbrt(44 + 18·sqrt12)         = không khử được

Muốn bỏ hẳn hàm divisors (tốn $O(\sqrt{|a|})$) thì thay vòng lặp bằng ứng viên duy nhất ở mục 9: $q=\operatorname{round}\big((\sqrt[3]{a+B\sqrt d}+\sqrt[3]{a-B\sqrt d})/2\big)$, rồi vẫn kiểm tra lại bằng số nguyên như trên. Với số cực lớn thì dùng decimal hoặc Newton trên số nguyên thay cho float.

12. Nới thứ nhất: $q,p$ hữu tỉ — và vì sao chỉ có thể là "nửa nguyên"

Định lý mục 5 đòi $q,p\in\mathbb Z$. Đòi hỏi ấy — cũng giống đòi hỏi "viết theo $\sqrt c$" ở mục 4 — vẫn hẹp hơn bản chất bài toán. Phản ví dụ nhỏ nhất là tỉ lệ vàng:

$$\varphi=\frac{1+\sqrt5}{2},\qquad \varphi^2=\varphi+1\ \Rightarrow\ \varphi^3=2\varphi+1=2+\sqrt5 \qquad\Longrightarrow\qquad \sqrt[3]{2+\sqrt5}=\frac{1+\sqrt5}{2}$$

Thử thuật toán mục 5 với $(a,b,c)=(2,1,5)$: $N=4-5=-1=(-1)^3$ nên $m=-1$ — điều kiện 1 thoả. Nhưng $4q^3+3q=2$ không có nghiệm nguyên ($q=\pm1,\pm2$ cho $7,-7,38,-38$), nên phiên bản nguyên đành trả lời "không khử được" — trong khi đáp số đang nằm ngay đó, chỉ với $q=p=\tfrac12$. Chỗ hụt không nằm ở số học mà ở vành ta cho phép.

Ẩn tự nhiên không phải $q$ mà là $u=t+s$

Nhớ lại mục 3: $t=\sqrt[3]{a+B\sqrt d}$, $s=\sqrt[3]{a-B\sqrt d}$, $t+s=2q$, $ts=m$. Đặt thẳng

$$u:=t+s=2q\qquad\Longrightarrow\qquad \boxed{\,u^3-3mu=2a\,}$$

(nhân $4q^3-3mq=a$ với $2$ rồi thay $2q=u$). Phương trình này chính là bậc ba dạng Cardano $u^3=Pu+Q$ với $P=3m$, $Q=2a$ — tức $u$ đúng là con số mà công thức Cardano trả về: $$u=\sqrt[3]{a+\sqrt{a^2-m^3}}+\sqrt[3]{a-\sqrt{a^2-m^3}} .$$ Vậy điều kiện "$q$ nguyên" của mục 5 thật ra là "$u$ nguyên và chẵn". Cái vế "chẵn" mới là phần áp đặt thêm; phần bản chất chỉ là $u$ nguyên. Ví dụ tỉ lệ vàng có $u=1$: lẻ, nên bị mục 5 loại oan.

Định lý (phiên bản hữu tỉ).

Cho $a,b\in\mathbb Z$, $b\neq0$, $c$ không chính phương; $c=k^2d$ với $d$ squarefree, $B=bk$. Khi đó $\sqrt[3]{a+b\sqrt c}=q+p\sqrt d$ với $q,p\in\mathbb Q$ khi và chỉ khi

  1. $N=a^2-cb^2$ là lập phương đúng trong $\mathbb Z$, đặt $m=\sqrt[3]N$ (điều kiện 1 không đổi);
  2. $u^3-3mu=2a$ có nghiệm nguyên $u$ (khi $a\neq0$ thì $u\mid2a$, nên chỉ cần thử các ước của $2a$; trường hợp $a=0$ xem mục 14).
$$\boxed{\;w=\frac{2B}{u^2-m},\qquad \sqrt[3]{a+b\sqrt c}=\frac{u+w\sqrt d}{2}\;}$$

Hơn nữa $u,w$ luôn cùng tính chẵn lẻ: cùng chẵn thì $q=\tfrac u2,\;p=\tfrac w2$ nguyên (đúng mục 5), còn cùng lẻ — tức đáp số thật sự "nửa nguyên" — chỉ có thể xảy ra khi $d\equiv1\pmod4$. Mẫu số lớn hơn $2$ thì không bao giờ.

Vì sao mẫu số chỉ có thể là $1$ hoặc $2$

  1. $m$ vẫn nguyên. $m=q^2-dp^2$ là số hữu tỉ, còn $m^3=N\in\mathbb Z$; một số hữu tỉ có lập phương nguyên thì nguyên (định lý nghiệm hữu tỉ áp cho $X^3-N$). Nên điều kiện 1 không hề nới ra.
  2. $2q\in\mathbb Z$. Viết $q=\tfrac{x}{v}$ tối giản. Từ $4q^3-3mq-a=0$, định lý nghiệm hữu tỉ cho $v\mid4$, tức $v\in\{1,2,4\}$. Nếu $v=4$: thay $q=\tfrac x4$ ($x$ lẻ) rồi nhân $16$ được $x^3-12mx=16a$ — vế trái lẻ, vế phải chẵn, vô lý. Vậy $v\le2$ và $u=2q\in\mathbb Z$.
  3. $2p\in\mathbb Z$. Từ $dp^2=q^2-m$ (mục 2) suy ra $d\,(2p)^2=u^2-4m\in\mathbb Z$; $d$ squarefree nên bổ đề mục 5 cho $w=2p\in\mathbb Z$.
  4. Trường hợp lẻ buộc $d\equiv1\pmod4$. Nếu $u$ lẻ thì $u^2\equiv1\pmod 8$, và $dw^2=u^2-4m$. Nếu $w$ chẵn thì $dw^2\equiv0\pmod4$ trong khi $u^2-4m\equiv1\pmod4$ — vô lý; vậy $w$ cũng lẻ, $w^2\equiv1\pmod8$, và rút gọn theo modulo $4$ được $d\equiv1\pmod4$. $\square$

Cách nhìn "một dòng": vành các số nguyên đại số. $z=q+p\sqrt d$ là nghiệm của $X^3-(a+B\sqrt d)$ — đa thức monic với hệ số là số nguyên đại số — nên $z$ là số nguyên đại số của $K=\mathbb Q(\sqrt d)$. Mà vành số nguyên của $K$ đã được biết từ lâu: $$\mathcal O_K=\begin{cases}\mathbb Z[\sqrt d] & d\equiv2,3\pmod4\\[2pt] \mathbb Z\!\left[\dfrac{1+\sqrt d}{2}\right] & d\equiv1\pmod4\end{cases}$$ Bốn bước tính toán ở trên chỉ là chứng minh lại bằng tay đúng sự thật đó. Với $d\equiv1\pmod4$, đáp số viết gọn bằng $\varepsilon=\tfrac{1+\sqrt d}{2}$: chẳng hạn $\sqrt[3]{2+\sqrt5}=\varepsilon$ với $\varepsilon=\varphi$.

Mẹo "nhân $8$" — dùng lại y nguyên máy nguyên. Vì $(2z)^3=8z^3$, ta có $q,p\in\tfrac12\mathbb Z$ cho $a+b\sqrt c$ $\Leftrightarrow$ $2q,2p\in\mathbb Z$ cho $8a+8b\sqrt c$. Nghĩa là: chạy thuật toán nguyên với $(8a,8b,c)$ rồi chia đáp số cho $2$ ($N$ nhân $64$, $m$ nhân $4$). Kiểm lại với tỉ lệ vàng: $(16,8,5)$ cho $N=-64$, $m=-4$, $4q^3+12q=16\Rightarrow q=1$, $p=\tfrac{8}{4+4}=1$, tức $\sqrt[3]{16+8\sqrt5}=1+\sqrt5$ — chia $2$ là ra $\varphi$.

Ví dụ nửa nguyên (mọi $d$ đều $\equiv1\pmod4$)

$\sqrt[3]{a+B\sqrt d}$$m$$u=2q$$w=2p$đáp số
$\sqrt[3]{2+\sqrt5}$-111$\dfrac{1+\sqrt5}{2}=\varphi$
$\sqrt[3]{9+4\sqrt5}$131$\dfrac{3+\sqrt5}{2}=\varphi^2$
$\sqrt[3]{17+18\sqrt5}$-1113$\dfrac{1+3\sqrt5}{2}$
$\sqrt[3]{18+5\sqrt{13}}$-131$\dfrac{3+\sqrt{13}}{2}$
$\sqrt[3]{5+2\sqrt{13}}$-311$\dfrac{1+\sqrt{13}}{2}$

Ngược lại, với $d\equiv2,3\pmod4$ (như $d=2,3,6,7$) thì $\mathcal O_K=\mathbb Z[\sqrt d]$: nới sang hữu tỉ không thêm được nghiệm nào. Mọi ví dụ "bó tay" ở mục 7 vẫn bó tay — $\sqrt[3]{1+\sqrt2}$ có $m=-1$ và $u^3+3u=2$ vô nghiệm nguyên, $\sqrt[3]{3+2\sqrt2}$ có $m=1$ và $u^3-3u=6$ vô nghiệm nguyên. Còn tính duy nhất thì vẫn nguyên vẹn: với $c>0$ phương trình chỉ có một nghiệm thực, nên nhiều nhất một đáp số hữu tỉ.

Trên Hình 2 (mục 8), các điểm nửa nguyên được vẽ thành ô vuông bên cạnh các đĩa tròn của $(q,p)\in\mathbb Z^2$ — chúng chỉ xuất hiện khi $d\equiv1\pmod4$, và chỉ những điểm cho $(a,B)$ nguyên mới được vẽ.

13. Khi $a,b,c$ cũng chỉ là số hữu tỉ

Trường hợp này không sinh ra lý thuyết mới, chỉ cần hai phép đổi biến "vô hại" — nhưng nên nói rõ để định lý phát biểu được cho dữ liệu hữu tỉ bất kỳ.

  1. $c$ hữu tỉ $\to$ $c$ nguyên. Với $c=\dfrac{c_1}{c_2}$ thì $\sqrt c=\dfrac{\sqrt{c_1c_2}}{c_2}$, nên $b\sqrt c=\dfrac{b}{c_2}\sqrt{c_1c_2}$: radicand thành số nguyên, hệ số thành số hữu tỉ. Ví dụ $\sqrt{\tfrac89}=\tfrac{2\sqrt2}{3}$.
  2. $a,b$ hữu tỉ $\to$ nguyên. Vì $(nz)^3=n^3z^3$, chọn $n$ là bội chung nhỏ nhất của các mẫu số rồi khử $n^3a+n^3b\sqrt c$ (nguyên), sau đó chia đáp số cho $n$. Ghép luôn với mẹo nhân $8$ ở mục 12: dùng $n$ chẵn là xử lý được cả nửa nguyên.
$$\sqrt[3]{\frac{7}{8}+\frac58\sqrt2}=\frac{1+\sqrt2}{2}$$

$n=2$: khử $7+5\sqrt2=(1+\sqrt2)^3$ rồi chia $2$.

$$\sqrt[3]{\frac{10+6\sqrt3}{27}}=\frac{1+\sqrt3}{3}$$

$n=3$: khử $10+6\sqrt3=(1+\sqrt3)^3$ rồi chia $3$.

Điểm cần nhớ: mẫu số của đáp số không tuỳ ý. Sau khi đã đưa $a,b$ về nguyên, mục 12 khẳng định mẫu số chỉ có thể là $1$ hoặc $2$ — mọi mẫu số khác mà bạn thấy đều đến từ bước nhân $n^3$ vào radicand, chứ không phải từ bản chất số học.

14. Nới thứ hai: $c<0$ — căn bậc ba phức

Bây giờ cho $c<0$. Viết vẫn $c=k^2d$ nhưng để $d$ mang dấu âm và squarefree (ví dụ $-12=2^2\cdot(-3)$, $-9=3^2\cdot(-1)$), cố định nhánh $\sqrt c=i\sqrt{|c|}$ với $i=\sqrt{-1}$. Khi đó $K=\mathbb Q(\sqrt d)$ là một trường bậc hai ảo, mọi $q+p\sqrt d$ là số phức, và bài toán trở nên thú vị hơn hẳn vì ba thứ thay đổi cùng lúc.

(a) $\sqrt[3]{\ }$ có ba giá trị

Ba căn bậc ba của $\alpha=a+B\sqrt d$ là $z,\ \omega z,\ \omega^2z$ với $\omega=\tfrac{-1+\sqrt{-3}}{2}$. "Khử được" nghĩa là một trong ba nằm trong $K$ — không còn khái niệm "căn bậc ba thực duy nhất" của mục 3.

(b) $m$ là bình phương module

$N=a^2-cb^2=a^2+|c|b^2>0$ luôn dương, nên $m=\sqrt[3]N>0$ và $m=q^2-dp^2=q^2+|d|p^2=|z|^2$. Chuẩn đại số ở mục 2 bây giờ đúng là module bình phương của số phức.

(c) luôn có ba nghiệm thực

$a^2-m^3=dB^2=-|d|B^2<0$, tức $|a|<m^{3/2}$ luôn đúng: đường $y=a$ nằm trong dải vàng của Hình 1. Kết luận "một nghiệm thực" ở mục 3 bị đảo ngược hoàn toàn.

Ba nghiệm thực đó là ba phần thực — và khử căn là chia ba góc

Với $d<0$, phép liên hợp $\sqrt d\mapsto-\sqrt d$ chính là liên hợp phức, nên $q=\tfrac12(z+\bar z)=\operatorname{Re}z$ và $m=z\bar z=|z|^2$. Viết $z_j=\sqrt m\,e^{i(\theta+2\pi j/3)}$, $j=0,1,2$, thì

$$\cos3\theta=\frac{a}{m^{3/2}},\qquad q_j=\sqrt m\,\cos\!\Big(\theta+\frac{2\pi j}{3}\Big),\qquad p_j=\sqrt{\frac{m}{|d|}}\,\sin\!\Big(\theta+\frac{2\pi j}{3}\Big),\qquad q_0+q_1+q_2=0$$

Ba nghiệm thực của $4q^3-3mq=a$ chính là phần thực của ba căn bậc ba, và điều kiện $|a|<m^{3/2}$ ở (c) chỉ là câu "$\cos3\theta$ phải nằm trong $[-1,1]$". Ở mục 3, công thức nhân ba xuất hiện như một phép đổi biến gợi ý; ở đây nó bài toán: khử căn bậc ba phức $=$ chia ba góc $\arg\alpha$ sao cho kết quả rơi vào $K$.

Có bao nhiêu đáp số? $0$, $1$ hoặc $3$ — và $3$ chỉ khi $d=-3$. Nếu $z_1,z_2\in K$ là hai căn bậc ba khác nhau thì $\omega=z_1/z_2\in K$, mà $\mathbb Q(\omega)=\mathbb Q(\sqrt{-3})$, nên $d=-3$. Ngược lại khi $d=-3$ thì $\omega\in K$ nên có một đáp số là có cả ba. Cụ thể (số nguyên Eisenstein): $$\sqrt[3]{-10+9\sqrt{-3}}\in\Big\{\,2+\sqrt{-3},\ \ \tfrac{1-3\sqrt{-3}}{2},\ \ \tfrac{-5+\sqrt{-3}}{2}\,\Big\}, \qquad m=7,\quad q\in\{2,\tfrac12,-\tfrac52\}$$ Ba phần thực cộng lại bằng $0$ ✓, và vì $-3\equiv1\pmod4$ nên hai trong ba đáp số là nửa nguyên — hai nới lỏng của mục 12 và mục 14 gặp nhau ở đúng đây.

Cảnh báo: đáp số đẹp không nhất thiết là nhánh chính. Với $46+9i$ ($m=13$) căn bậc ba Gauss duy nhất là $-2+3i$, còn giá trị chính $\sqrt[3]{46+9i}\approx3.5981+0.2321\,i$ lại không nằm trong $\mathbb Z[i]$. Nói cách khác, với $c<0$ ta chỉ khẳng định được $(q+p\sqrt d)^3=a+b\sqrt c$; muốn nói "$=\sqrt[3]{\,\cdot\,}$" thì phải nêu rõ chọn nhánh nào. Nhánh chính ứng với $\arg\in(-\tfrac\pi3,\tfrac\pi3]$, tức nghiệm $q$ lớn nhất.

Thuật toán đổi ba chỗ

  1. Hai điều kiện giữ nguyên (phát biểu như mục 12): $N=a^2-cb^2$ phải là lập phương đúng — lần này $N>0$ nên $m>0$ — và $u^3-3mu=2a$ phải có nghiệm nguyên $u=2q$; rồi $w=\dfrac{2B}{u^2-m}$.
  2. Có thêm chặn để quét, khỏi cần phân tích ra ước: vì $q=\sqrt m\cos(\cdot)$ nên $q^2\le m$, tức $u^2\le4m$ — chỉ có $O(\sqrt m)$ ứng viên. Với $a$ khổng lồ mà $m$ nhỏ thì quét theo chặn này nhanh hơn liệt kê ước của $2a$ rất nhiều. (Chặn này là đặc sản của $d<0$: với $d>0$ thì $q$ có thể lớn tuỳ ý so với $\sqrt m$.)
  3. $a=0$ phải xử lý riêng: mọi $u$ đều "chia hết" $0$, nên thay bằng giải trực tiếp $u(u^2-3m)=0$: $u=0$ hoặc $u^2=3m$. Ví dụ $\sqrt[3]{24\sqrt{-3}}$ có ba đáp số $3+\sqrt{-3}$, $-2\sqrt{-3}$, $-3+\sqrt{-3}$ (ứng với $u=6,\,0,\,-6$; $m=12$).

Ví dụ

bài toán$N$$m$kết quả
$\sqrt[3]{2+11i}$1255$2+i$ (Bombelli 1572)
$\sqrt[3]{-46+9i}$219713$2+3i$
$\sqrt[3]{46+9i}$219713$-2+3i$ (không phải nhánh chính)
$\sqrt[3]{-10+9\sqrt{-3}}$3437ba đáp số, hai cái nửa nguyên
$\sqrt[3]{24\sqrt{-3}}$172812ba đáp số, $a=0$
$\sqrt[3]{1+i}$2không khử được ($N$ không lập phương)
$\sqrt[3]{4+4\sqrt{-3}}$644không khử được (xem dưới)

Bombelli, 1572 — vì sao số phức được sinh ra. Giải $x^3=15x+4$ bằng Cardano cho $$x=\sqrt[3]{2+\sqrt{-121}}+\sqrt[3]{2-\sqrt{-121}}=\sqrt[3]{2+11i}+\sqrt[3]{2-11i} .$$ Ai cũng thấy $x=4$ là nghiệm, nhưng công thức lại đi qua căn của số âm. Bombelli đoán $\sqrt[3]{2+11i}=2+i$ và cộng liên hợp: $(2+i)+(2-i)=4$. Bằng ngôn ngữ bài này: $a=2$, $B=11$, $d=-1$, $N=4+121=125$ nên $m=5$; phương trình $u^3-3mu=2a$ là $u^3-15u=4$ — đúng chính phương trình ban đầu, vì $u=t+s=x$. Vậy "khử được căn bậc ba phức" và "phương trình bậc ba có nghiệm hữu tỉ" không chỉ tương đương: chúng là cùng một phương trình.

Và vì sao không chia ba được góc $60^\circ$. Lấy $\alpha=8(\cos60^\circ+i\sin60^\circ)=4+4\sqrt{-3}$. Ở đây $N=16+48=64$, $m=4$, $|\alpha|=8$ nên $|z|=2$ và $\cos3\theta=\tfrac{4}{8}=\tfrac12$: chia ba góc $60^\circ$. Phương trình $u^3-12u=8$ với $u=4\cos20^\circ$ không có nghiệm nguyên nào trong các ước của $8$, nên $\sqrt[3]{4+4\sqrt{-3}}$ không khử được — đó chính là phát biểu "$\cos20^\circ$ không dựng được bằng thước và compa" của mục 10, lần này đọc thành một câu về khử căn.

Một hệ quả hình học đáng nói cho Hình 2: đường chuẩn $a^2-dB^2=m^3$ với $d<0$ là ellipse $a^2+|d|B^2=m^3$ chứ không phải hyperbol. Ellipse chỉ chứa hữu hạn điểm nguyên, nên với mỗi $m$ chỉ có hữu hạn radicand khử được; còn với $d>0$ hyperbol chứa vô hạn điểm (nghiệm phương trình Pell), tức vô hạn radicand cùng chuẩn. Hai thế giới rất khác nhau, và máy ở đầu bài vẽ đúng đường tương ứng khi bạn nhập $c<0$.

15. Bức tranh chung: đổi vành, đổi trường, và giới hạn của phương pháp

Ba mục vừa rồi cho thấy cùng một bộ xương chịu được nhiều lớp da khác nhau. Điểm chung: bài toán chỉ cần $\{1,\sqrt d\}$ độc lập tuyến tính trên trường cơ sở, còn lại là chuẩn và công thức nhân ba.

trường hợpđáp số nằm trongđiều kiện 1điều kiện 2số đáp số
$c>0$, $q,p\in\mathbb Z$ (mục 5)$\mathbb Z[\sqrt d]$$N$ lập phương$4q^3-3mq=a$ có nghiệm nguyên$\le1$
$c>0$, $q,p\in\mathbb Q$ (mục 12)$\mathcal O_K$$N$ lập phương$u^3-3mu=2a$ có nghiệm nguyên$\le1$
$c<0$ (mục 14)$\mathcal O_K\subset\mathbb C$$N$ lập phương ($N>0$)$u^3-3mu=2a$ có nghiệm nguyên$0,1$ hoặc $3$ ($3\Leftrightarrow d=-3$)
trường cơ sở $F$ bất kỳ$F(\sqrt d)$$N$ là lập phương trong $F$bậc ba có nghiệm trong $F$$\le3$

Dòng cuối nói rằng chẳng có gì đặc biệt ở $\mathbb Q$: với $F$ là một trường bất kỳ (đặc số $\neq2,3$) và $\sqrt d\notin F$, mọi lập luận từ mục 1 đến mục 3 chạy y nguyên — chuẩn $N=a^2-dB^2$ phải là lập phương trong $F$, rồi $4q^3-3mq=a$ phải có nghiệm trong $F$. Chỉ phần "tự động nguyên" là đặc thù số học: nó cần khái niệm vành số nguyên $\mathcal O_K$ và tính squarefree.

Không khử được thì "xa" đến mức nào? Với $b\neq0$, bậc của $z=\sqrt[3]{a+b\sqrt c}$ trên $\mathbb Q$ chỉ có hai khả năng: $2$ hoặc $6$. Thật vậy, nếu $\alpha=a+b\sqrt c$ không là lập phương trong $K=\mathbb Q(\sqrt c)$ thì $X^3-\alpha$ bất khả quy trên $K$, nên $[K(z):\mathbb Q]=6$; từ $K(z)=K\cdot\mathbb Q(z)$ suy ra $6\le2n$ với $n=[\mathbb Q(z):\mathbb Q]$, mà $n\mid6$, nên $n\in\{3,6\}$. Nếu $n=3$ thì $\mathbb Q(z)\cap K$ có bậc chia cả $3$ và $2$, tức bằng $\mathbb Q$, nên $\alpha=z^3\in\mathbb Q(z)\cap K=\mathbb Q$, buộc $b=0$ — vô lý. Vậy $n=6$. Nói cách khác: một khi hai điều kiện của định lý thất bại, không có "đáp số gần đúng dạng đẹp" nào cả — $z$ nhảy thẳng lên bậc $6$, còn khử được thì bậc rơi xuống $2$.

Điều đó vẫn không có nghĩa là biểu thức không viết gọn được bằng căn khác. Bài toán denesting tổng quát cho phép đáp số chứa cả căn bậc ba, và ở đó có những đẳng thức nổi tiếng nằm ngoài khuôn khổ mục 5:

$$\sqrt[3]{\sqrt[3]2-1}=\sqrt[3]{\frac19}-\sqrt[3]{\frac29}+\sqrt[3]{\frac49}\qquad\text{(Ramanujan)}$$

Ở đây radicand thậm chí không sống trong một trường bậc hai. Cho lớp bài toán rộng như thế, câu trả lời hoàn chỉnh là các thuật toán denesting (Borodin–Fagin–Hopcroft–Tompa, Landau, Blömer) chạy trên lý thuyết Galois và lý thuyết số đại số — cùng bộ khung "chuẩn $+$ nhân ba" ở trên, nhưng dựng trên tháp mở rộng nhiều tầng. Bài này chỉ đi hết một tầng, và đúng tầng đó thì mọi thứ gọn đến mức tính được bằng đầu.

16. Mã nguồn Python — bản tổng quát ($q,p$ hữu tỉ, $c$ âm)

Cài đặt các mục 12–14, dùng lại icbrt, squarefree_part, divisors ở mục 11. Điểm khác so với bản nguyên chỉ gồm bốn dòng ý tưởng: nhân radicand với $n^3$ để làm sạch mẫu số, giữ dấu khi rút $c=k^2d$, đổi ẩn sang $u=2q$ với phương trình $u^3-3mu=2a$, và trả về danh sách đáp số (vì với $d=-3$ có thể có ba).

from fractions import Fraction
from math import gcd, isqrt
# dùng lại icbrt, squarefree_part, divisors ở mục 11


def squarefree_part_signed(c: int) -> tuple[int, int]:
    """c = k^2 * d với d squarefree, GIỮ DẤU: d < 0 khi c < 0."""
    s = -1 if c < 0 else 1
    k, d = squarefree_part(abs(c))
    return k, s * d


def denest_cbrt_all(a, b, c: int) -> list:
    """Mọi z = q + p*sqrt(d) với q, p HỮU TỈ và z^3 = a + b*sqrt(c).

    a, b: int hoặc Fraction (b != 0);  c: int != 0, không chính phương dương.
    Cho phép c < 0: khi đó sqrt(c) = i*sqrt(|c|), z là số phức và có thể có
    tới BA đáp số (chỉ xảy ra khi d = -3).
    Trả về [(q, p, d)] với q, p là Fraction, xếp theo q giảm dần — phần tử
    đầu ứng với Re lớn nhất, tức nhánh chính của căn bậc ba.
    """
    a, b = Fraction(a), Fraction(b)
    if b == 0 or c == 0:
        raise ValueError("cần b != 0 và c != 0")
    if c > 0 and isqrt(c) ** 2 == c:
        raise ValueError("c chính phương: sqrt(c) đã là số nguyên")

    # bước 0 (mục 13): nhân radicand với n^3 để a, b thành số nguyên  (z -> n*z)
    n = a.denominator * b.denominator // gcd(a.denominator, b.denominator)
    A, Bb = int(a * n ** 3), int(b * n ** 3)

    k, d = squarefree_part_signed(c)         # bước 1: chuẩn hoá radicand
    B = Bb * k

    m, exact = icbrt(A * A - c * Bb * Bb)    # bước 2: N = A^2 - c*Bb^2 = A^2 - d*B^2
    if not exact:
        return []

    # bước 3 (mục 12): u = 2q phải NGUYÊN và u^3 - 3mu = 2A
    if A != 0:
        cands = divisors(2 * A)
    elif m > 0 and isqrt(3 * m) ** 2 == 3 * m:   # A = 0: u = 0 hoặc u^2 = 3m
        cands = [0, isqrt(3 * m), -isqrt(3 * m)]
    else:
        cands = [0]

    out = []
    for u in cands:
        if u ** 3 - 3 * m * u != 2 * A:
            continue
        den = u * u - m                      # = 4q^2 - m
        if den == 0 or (2 * B) % den != 0:
            continue
        w = 2 * B // den                     # w = 2p
        # kiểm tra lại bằng số nguyên: ((u + w*sqrt d)/2)^3 == A + B*sqrt d
        if u ** 3 + 3 * d * u * w * w == 8 * A and 3 * u * u * w + d * w ** 3 == 8 * B:
            out.append((Fraction(u, 2 * n), Fraction(w, 2 * n), d))

    out.sort(key=lambda t: -t[0])
    return out


def show(a, b, c: int) -> None:
    a, b = Fraction(a), Fraction(b)
    lhs = f"cbrt({a} {'-' if b < 0 else '+'} {abs(b)}*sqrt{c})"
    sols = denest_cbrt_all(a, b, c)
    if not sols:
        print(f"{lhs:30} = không khử được (kể cả với q, p hữu tỉ)")
        return
    txt = "  |  ".join(f"{q} {'-' if p < 0 else '+'} {abs(p)}*sqrt{d}" for q, p, d in sols)
    print(f"{lhs:30} = {txt}")


if __name__ == "__main__":
    show(7, 5, 2)                       # nguyên, như mục 6
    show(20, 7, 8)                      # c có nhân tử chính phương
    show(2, 1, 5)                       # nửa nguyên: tỉ lệ vàng
    show(9, 4, 5)
    show(17, 18, 5)
    show(18, 5, 13)
    show(Fraction(7, 8), Fraction(5, 8), 2)     # a, b hữu tỉ (mục 13)
    show(Fraction(10, 27), Fraction(6, 27), 3)
    show(2, 11, -1)                     # Bombelli 1572
    show(-46, 9, -1)
    show(46, 9, -1)                     # đáp số KHÔNG phải nhánh chính
    show(-10, 9, -3)                    # Eisenstein: ba đáp số
    show(0, 24, -3)                     # a = 0, u = 0 và u^2 = 3m
    show(0, 3, -3)
    show(4, 4, -3)                      # chia ba góc 60 độ
    show(1, 1, -1)
    show(1, 1, 2)
    show(3, 2, 2)

Kết quả chạy:

cbrt(7 + 5*sqrt2)              = 1 + 1*sqrt2
cbrt(20 + 7*sqrt8)             = 2 + 1*sqrt2
cbrt(2 + 1*sqrt5)              = 1/2 + 1/2*sqrt5
cbrt(9 + 4*sqrt5)              = 3/2 + 1/2*sqrt5
cbrt(17 + 18*sqrt5)            = 1/2 + 3/2*sqrt5
cbrt(18 + 5*sqrt13)            = 3/2 + 1/2*sqrt13
cbrt(7/8 + 5/8*sqrt2)          = 1/2 + 1/2*sqrt2
cbrt(10/27 + 2/9*sqrt3)        = 1/3 + 1/3*sqrt3
cbrt(2 + 11*sqrt-1)            = 2 + 1*sqrt-1
cbrt(-46 + 9*sqrt-1)           = 2 + 3*sqrt-1
cbrt(46 + 9*sqrt-1)            = -2 + 3*sqrt-1
cbrt(-10 + 9*sqrt-3)           = 2 + 1*sqrt-3  |  1/2 - 3/2*sqrt-3  |  -5/2 + 1/2*sqrt-3
cbrt(0 + 24*sqrt-3)            = 3 + 1*sqrt-3  |  0 - 2*sqrt-3  |  -3 + 1*sqrt-3
cbrt(0 + 3*sqrt-3)             = 3/2 + 1/2*sqrt-3  |  0 - 1*sqrt-3  |  -3/2 + 1/2*sqrt-3
cbrt(4 + 4*sqrt-3)             = không khử được (kể cả với q, p hữu tỉ)
cbrt(1 + 1*sqrt-1)             = không khử được (kể cả với q, p hữu tỉ)
cbrt(1 + 1*sqrt2)              = không khử được (kể cả với q, p hữu tỉ)
cbrt(3 + 2*sqrt2)              = không khử được (kể cả với q, p hữu tỉ)

Chú ý dòng cbrt(46 + 9*sqrt-1) = -2 + 3*sqrt-1: hàm trả về mọi $z$ thoả $z^3=a+b\sqrt c$, và ở đây $z$ không phải giá trị chính của căn bậc ba (mục 14). Muốn lọc nhánh chính thì so $z$ với complex(a, 0) + b*cmath.sqrt(c) nâng lên 1/3.

Tóm tắt một khung

  1. Rút $c=k^2d$ ($d$ squarefree), $B=bk$ — bước này là lý do định lý dùng được cho $c$ tùy ý.
  2. $N=a^2-cb^2$ phải là lập phương đúng, đặt $m=\sqrt[3]N$ (có thể âm).
  3. $4q^3-3mq=a$ phải có nghiệm nguyên $q$ — thử các ước của $a$, hoặc lấy trực tiếp $q=\operatorname{round}\big(\tfrac12(t+s)\big)$. Nghiệm thực là duy nhất vì $a^2-m^3=dB^2>0$.
  4. $p=\dfrac{bk}{4q^2-m}$ tự động nguyên, và $\sqrt[3]{a+b\sqrt c}=q+p\sqrt d$.

Ba mức nới lỏng (mục 12–15)

  • $q,p$ hữu tỉ: đổi ẩn sang $u=2q$ thì điều kiện đúng là $u^3-3mu=2a$ có nghiệm nguyên ($u\mid 2a$), rồi $w=\dfrac{2B}{u^2-m}$ và đáp số là $\dfrac{u+w\sqrt d}{2}$. Mẫu số chỉ có thể là $1$ hoặc $2$; mẫu $2$ chỉ khi $d\equiv1\pmod4$ (vành số nguyên $\mathbb Z\big[\tfrac{1+\sqrt d}{2}\big]$). Ví dụ $\sqrt[3]{2+\sqrt5}=\varphi$.
  • $a,b,c$ hữu tỉ: $\sqrt{c_1/c_2}=\sqrt{c_1c_2}/c_2$ và nhân radicand với $n^3$ — không có lý thuyết mới, chỉ đổi đơn vị.
  • $c<0$: $N=a^2+|c|b^2>0$ luôn, $m=|z|^2$, và $a^2-m^3<0$ nên bậc ba luôn có ba nghiệm thực $=$ phần thực của ba căn bậc ba phức. Số đáp số là $0,1$ hoặc $3$; ba đáp số chỉ khi $d=-3$. Khử được $\Leftrightarrow$ chia ba góc $\arg\alpha$ ra được số hữu tỉ: $\sqrt[3]{2+11i}=2+i$ được, $\sqrt[3]{4+4\sqrt{-3}}$ (góc $60^\circ$) thì không.

Đọc thêm: Nested radical (denesting) · Casus irreducibilis · Vành $\mathbb Z[\sqrt d]$ và chuẩn · Số nguyên Gauss $\mathbb Z[i]$ · Số nguyên Eisenstein ($d=-3$) · Chia ba góc

Share: X (Twitter) Facebook LinkedIn