{"slug":"dai-dien-phap-la-gi-thuat-toan-boi-kinh-dich-co-dai-50-thanh-thi","title":"Đại Diễn Pháp Là Gì — Thuật Toán Bói Kinh Dịch Cổ Đại Với 50 Thẻ Thi","summary":"Đại Diễn Pháp (大衍法) là gì? Phương pháp bói Kinh Dịch cổ đại 3000 năm với 50 thẻ thi: nguồn gốc, triết học vũ trụ, quy trình 18 bước, xác suất, và triển khai Python/JS/C.","excerpt":"Đại Diễn Pháp (大衍法) là gì? Phương pháp bói Kinh Dịch cổ đại 3000 năm với 50 thẻ thi: nguồn gốc, triết học vũ trụ, quy trình 18 bước, xác suất, và triển khai Python/JS/C.","markdown":"# Đại Diễn Pháp (大衍法) — Yarrow Stalk Oracle\n## 1. Nguồn Gốc\nĐại Diễn Pháp (大衍法, Dà Yǎn Fǎ) là phương pháp bói Kinh Dịch cổ xưa nhất còn tồn tại, được mô tả trong chương Hệ Từ Truyện (繫辭傳 Xìcí Zhuàn) — phần phụ lục triết học của Kinh Dịch, có niên đại khoảng 300-200 TCN (Chiến Quốc).\n\nNguyên văn cổ:\n\n大衍之數五十，其用四十有九。\nDà yǎn zhī shù wǔshí, qí yòng sìshí yǒu jiǔ.\n\n\"Số đại diễn là năm mươi, sử dụng bốn mươi chín.\"\n\n分而為二以象兩，掛一以象三，揲之以四以象四時，\n歸奇於扐以象閏。五歲再閏，故再扐而後掛。\n\nFēn ér wéi èr yǐ xiàng liǎng, guà yī yǐ xiàng sān,\nshé zhī yǐ sì yǐ xiàng sì shí,\nguī qí yú lè yǐ xiàng rùn.\nWǔ suì zài rùn, gù zài lè ér hòu guà.\n## 2. Ý Nghĩa Triết Học\nMỗi bước trong Đại Diễn Pháp đều mang tượng trưng vũ trụ luận:\n\n50 thẻ = Số Đại Diễn — con số bao trùm vạn vật\n1 thẻ bỏ ra = Thái Cực (太極) — nguồn gốc chưa phân chia, không sử dụng\n49 thẻ sử dụng = Số của Dụng — vạn vật từ Thái Cực sinh ra\nChia 2 nhóm = Lưỡng Nghi (兩儀) — Âm-Dương, Trời-Đất\nRút 1 thẻ = Tam Tài (三才) — Trời-Đất-Người\nĐếm theo 4 = Tứ Thời (四時) — 4 mùa Xuân-Hạ-Thu-Đông\nPhần dư = Nhuận (閏) — tháng nhuận trong lịch âm\n## 3. Quy Trình 18 Bước (3 Biến × 6 Hào)\nMỗi quẻ Kinh Dịch có 6 hào. Mỗi hào cần 3 lần \"biến\" (操作, thao tác). Tổng cộng: 6 hào × 3 biến = 18 bước.\n\n### 3.1. Một Biến (1 iteration):\nBắt đầu với N thẻ thi (lần đầu: 49; các lần sau: số còn lại)\nChia ngẫu nhiên thành 2 nhóm (Tả 左 và Hữu 右)\nRút 1 thẻ từ nhóm Hữu, kẹp vào ngón tay út (tượng Tam Tài)\nĐếm nhóm Tả theo từng 4 thẻ, giữ phần dư (1-4 thẻ)\nĐếm nhóm Hữu theo từng 4 thẻ, giữ phần dư (1-4 thẻ)\nTổng phần dư (1 thẻ kẹp + dư Tả + dư Hữu) = thẻ bỏ ra lần này\n### 3.2. Giá trị phần dư mỗi biến:\nBiến 1: Tổng dư = 5 hoặc 9 (chỉ có 2 giá trị khả dĩ)\n\nBiến 2: Tổng dư = 4 hoặc 8\n\nBiến 3: Tổng dư = 4 hoặc 8\n\n### 3.3. Xác định hào:\nSau 3 biến, tổng thẻ bỏ ra ∈ {13, 17, 21, 25}. Thẻ còn lại chia 4:\n\n36 ÷ 4 = 9 → Thái Dương (老陽 Lão dương) — Dương động, giá trị 9\n32 ÷ 4 = 8 → Thiếu Âm (少陰 Thiếu âm) — Âm tĩnh, giá trị 8\n28 ÷ 4 = 7 → Thiếu Dương (少陽 Thiếu dương) — Dương tĩnh, giá trị 7\n24 ÷ 4 = 6 → Thái Âm (老陰 Lão âm) — Âm động, giá trị 6\n## 4. Xác Suất — Không Cân Bằng\nKhác với gieo 3 đồng xu (xác suất đều 1/8 cho mỗi tổ hợp), Đại Diễn Pháp có xác suất KHÔNG đều:\n\n# Xác suất Đại Diễn Pháp (tính toán chính xác)\n# Biến 1: P(5) = 4/49,  P(9) = 45/49  → gần như chắc chắn ra 9\n# ...nhưng kết quả cuối cùng:\n\nprobs = {\n6: 1/16,    # Thái Âm  (lão âm)   — 6.25%\n7: 5/16,    # Thiếu Dương          — 31.25%\n8: 7/16,    # Thiếu Âm             — 43.75%\n9: 3/16,    # Thái Dương (lão dương) — 18.75%\n}\n\n# So sánh với 3 đồng xu:\ncoin_probs = {\n6: 1/8,     # Thái Âm   — 12.5%\n7: 3/8,     # Thiếu Dương — 37.5%\n8: 3/8,     # Thiếu Âm   — 37.5%\n9: 1/8,     # Thái Dương — 12.5%\n}\n\n# Đại Diễn Pháp thiên về Âm (8) hơn Dương (7)\n# → phản ánh triết lý: Âm (vạn vật) nhiều hơn Dương (trời)\n## 5. Triển Khai Thuật Toán\n### 5.1. Python\nimport random\n\ndef yarrow_one_change(n_stalks):\n\"\"\"Thực hiện 1 biến (thao tác) Đại Diễn Pháp.\n\nArgs:\nn_stalks: Số thẻ hiện có (49 cho biến 1, ít hơn cho biến 2, 3)\nReturns:\nSố thẻ bỏ ra (phần dư)\n\"\"\"\n# Chia ngẫu nhiên thành 2 nhóm\nleft = random.randint(1, n_stalks - 1)\nright = n_stalks - left\n\n# Rút 1 từ nhóm phải (Tam Tài)\nright -= 1\nhand = 1\n\n# Đếm nhóm trái theo 4\nleft_remainder = left % 4\nif left_remainder == 0:\nleft_remainder = 4\n\n# Đếm nhóm phải theo 4\nright_remainder = right % 4\nif right_remainder == 0:\nright_remainder = 4\n\nreturn hand + left_remainder + right_remainder\n\n\ndef yarrow_one_line():\n\"\"\"Tạo 1 hào bằng Đại Diễn Pháp (3 biến).\n\nReturns:\n6 (Thái Âm), 7 (Thiếu Dương), 8 (Thiếu Âm), hoặc 9 (Thái Dương)\n\"\"\"\nstalks = 49\ntotal_removed = 0\n\nfor _ in range(3):  # 3 biến\nremoved = yarrow_one_change(stalks)\ntotal_removed += removed\nstalks -= removed\n\n# Thẻ còn lại chia 4 → giá trị hào\nreturn stalks // 4\n\n\ndef yarrow_hexagram():\n\"\"\"Tạo 1 quẻ 6 hào bằng Đại Diễn Pháp.\n\nReturns:\nList 6 giá trị [hào 1 (dưới), ..., hào 6 (trên)]\n\"\"\"\nreturn [yarrow_one_line() for _ in range(6)]\n\n\n# Sử dụng\nhexagram = yarrow_hexagram()\nprint(f\"Quẻ: {hexagram}\")\nfor i, line in enumerate(hexagram, 1):\nnames = {6: \"Thái Âm ⚋⚋\", 7: \"Thiếu Dương ⚊\", 8: \"Thiếu Âm ⚋\", 9: \"Thái Dương ⚊⚊\"}\nprint(f\"  Hào {i}: {line} — {names[line]}\")\n### 5.2. JavaScript\n/**\n* Đại Diễn Pháp (Yarrow Stalk Method)\n* Thuật toán bói Kinh Dịch cổ đại\n*/\nfunction yarrowOneChange(nStalks) {\nconst left = Math.floor(Math.random() * (nStalks - 1)) + 1;\nlet right = nStalks - left - 1; // -1 cho thẻ Tam Tài\n\nlet leftRem = left % 4 || 4;\nlet rightRem = right % 4 || 4;\n\nreturn 1 + leftRem + rightRem; // hand + left + right\n}\n\nfunction yarrowOneLine() {\nlet stalks = 49;\nfor (let i = 0; i < 3; i++) {\nstalks -= yarrowOneChange(stalks);\n}\nreturn stalks / 4; // 6, 7, 8, or 9\n}\n\nfunction yarrowHexagram() {\nreturn Array.from({ length: 6 }, () => yarrowOneLine());\n}\n\n// Sử dụng\nconst hexagram = yarrowHexagram();\nconsole.log(\"Quẻ:\", hexagram);\n### 5.3. C\n#include <stdio.h>\n#include <stdlib.h>\n#include <time.h>\n\nint yarrow_one_change(int n_stalks) {\nint left = 1 + rand() % (n_stalks - 1);\nint right = n_stalks - left - 1;\nint left_rem = left % 4;\nif (left_rem == 0) left_rem = 4;\nint right_rem = right % 4;\nif (right_rem == 0) right_rem = 4;\nreturn 1 + left_rem + right_rem;\n}\n\nint yarrow_one_line(void) {\nint stalks = 49;\nfor (int i = 0; i < 3; i++)\nstalks -= yarrow_one_change(stalks);\nreturn stalks / 4;\n}\n\nint main(void) {\nsrand((unsigned)time(NULL));\nprintf(\"Quẻ Kinh Dịch (Đại Diễn Pháp):\\n\");\nfor (int i = 0; i < 6; i++)\nprintf(\"  Hào %d: %d\\n\", i + 1, yarrow_one_line());\nreturn 0;\n}\n## 6. So Sánh Với Các Phương Pháp Bói Dịch Khác\nĐại Diễn Pháp (蓍草法): 50 cọng thi → 18 bước → xác suất không đều. Chậm nhất nhưng trang trọng nhất\nGieo 3 đồng xu (擲錢法): 3 xu tung → 1 hào. Nhanh, xác suất đều P(6)=P(9)=1/8, P(7)=P(8)=3/8\nPhương pháp Chu Dịch Tiên Sinh: Dùng 6 đồng xu tung 1 lần → 1 quẻ. Nhanh nhất nhưng ít truyền thống\nMai Hoa Dịch Số (梅花易數): Thiệu Ung — dùng số từ thời gian, sự kiện. Không cần công cụ vật lý\n## 7. Đại Diễn Pháp Trong QuizzMan\nTrong hệ thống Kinh Dịch của QuizzMan (lab.quizzman.com), Đại Diễn Pháp được triển khai với:\n\nMô phỏng trực quan: Animation 49 thẻ chia nhóm, đếm, bỏ dư — giúp visualize toàn bộ 18 bước\nEntropy nguồn: Dùng CSPRNG (crypto.getRandomValues) thay vì Math.random() — đảm bảo tính ngẫu nhiên thật sự\nKiểm chứng xác suất: Sau 1 triệu lần chạy, phân phối khớp với lý thuyết (6.25%, 31.25%, 43.75%, 18.75%)\nSo sánh song song: Cùng 1 câu hỏi, xem kết quả từ Đại Diễn Pháp vs 3 đồng xu — thấy rõ sự khác biệt phân phối","html":"<h2>1. Nguồn Gốc</h2>\n<p>Đại Diễn Pháp (大衍法, Dà Yǎn Fǎ) là phương pháp bói Kinh Dịch cổ xưa nhất còn tồn tại, được mô tả trong chương Hệ Từ Truyện (繫辭傳 Xìcí Zhuàn) — phần phụ lục triết học của Kinh Dịch, có niên đại khoảng 300-200 TCN (Chiến Quốc).</p>\n<p>Nguyên văn cổ:</p>\n<pre><code class=\"language-plaintext\">大衍之數五十，其用四十有九。\nDà yǎn zhī shù wǔshí, qí yòng sìshí yǒu jiǔ.\n\n&quot;Số đại diễn là năm mươi, sử dụng bốn mươi chín.&quot;\n\n分而為二以象兩，掛一以象三，揲之以四以象四時，\n歸奇於扐以象閏。五歲再閏，故再扐而後掛。\n\nFēn ér wéi èr yǐ xiàng liǎng, guà yī yǐ xiàng sān,\nshé zhī yǐ sì yǐ xiàng sì shí,\nguī qí yú lè yǐ xiàng rùn.\nWǔ suì zài rùn, gù zài lè ér hòu guà.</code></pre>\n<h2>2. Ý Nghĩa Triết Học</h2>\n<p>Mỗi bước trong Đại Diễn Pháp đều mang tượng trưng vũ trụ luận:</p>\n<ul>\n<li>50 thẻ = Số Đại Diễn — con số bao trùm vạn vật</li>\n<li>1 thẻ bỏ ra = Thái Cực (太極) — nguồn gốc chưa phân chia, không sử dụng</li>\n<li>49 thẻ sử dụng = Số của Dụng — vạn vật từ Thái Cực sinh ra</li>\n<li>Chia 2 nhóm = Lưỡng Nghi (兩儀) — Âm-Dương, Trời-Đất</li>\n<li>Rút 1 thẻ = Tam Tài (三才) — Trời-Đất-Người</li>\n<li>Đếm theo 4 = Tứ Thời (四時) — 4 mùa Xuân-Hạ-Thu-Đông</li>\n<li>Phần dư = Nhuận (閏) — tháng nhuận trong lịch âm</li>\n</ul>\n<h2>3. Quy Trình 18 Bước (3 Biến × 6 Hào)</h2>\n<p>Mỗi quẻ Kinh Dịch có 6 hào. Mỗi hào cần 3 lần &quot;biến&quot; (操作, thao tác). Tổng cộng: 6 hào × 3 biến = 18 bước.</p>\n<h3>3.1. Một Biến (1 iteration):</h3>\n<ol>\n<li>Bắt đầu với N thẻ thi (lần đầu: 49; các lần sau: số còn lại)</li>\n<li>Chia ngẫu nhiên thành 2 nhóm (Tả 左 và Hữu 右)</li>\n<li>Rút 1 thẻ từ nhóm Hữu, kẹp vào ngón tay út (tượng Tam Tài)</li>\n<li>Đếm nhóm Tả theo từng 4 thẻ, giữ phần dư (1-4 thẻ)</li>\n<li>Đếm nhóm Hữu theo từng 4 thẻ, giữ phần dư (1-4 thẻ)</li>\n<li>Tổng phần dư (1 thẻ kẹp + dư Tả + dư Hữu) = thẻ bỏ ra lần này</li>\n</ol>\n<h3>3.2. Giá trị phần dư mỗi biến:</h3>\n<p>Biến 1: Tổng dư = 5 hoặc 9 (chỉ có 2 giá trị khả dĩ)</p>\n<p>Biến 2: Tổng dư = 4 hoặc 8</p>\n<p>Biến 3: Tổng dư = 4 hoặc 8</p>\n<h3>3.3. Xác định hào:</h3>\n<p>Sau 3 biến, tổng thẻ bỏ ra ∈ {13, 17, 21, 25}. Thẻ còn lại chia 4:</p>\n<ul>\n<li>36 ÷ 4 = 9 → Thái Dương (老陽 Lão dương) — Dương động, giá trị 9</li>\n<li>32 ÷ 4 = 8 → Thiếu Âm (少陰 Thiếu âm) — Âm tĩnh, giá trị 8</li>\n<li>28 ÷ 4 = 7 → Thiếu Dương (少陽 Thiếu dương) — Dương tĩnh, giá trị 7</li>\n<li>24 ÷ 4 = 6 → Thái Âm (老陰 Lão âm) — Âm động, giá trị 6</li>\n</ul>\n<h2>4. Xác Suất — Không Cân Bằng</h2>\n<p>Khác với gieo 3 đồng xu (xác suất đều 1/8 cho mỗi tổ hợp), Đại Diễn Pháp có xác suất KHÔNG đều:</p>\n<pre><code class=\"language-python\"># Xác suất Đại Diễn Pháp (tính toán chính xác)\n# Biến 1: P(5) = 4/49,  P(9) = 45/49  → gần như chắc chắn ra 9\n# ...nhưng kết quả cuối cùng:\n\nprobs = {\n    6: 1/16,    # Thái Âm  (lão âm)   — 6.25%\n    7: 5/16,    # Thiếu Dương          — 31.25%\n    8: 7/16,    # Thiếu Âm             — 43.75%\n    9: 3/16,    # Thái Dương (lão dương) — 18.75%\n}\n\n# So sánh với 3 đồng xu:\ncoin_probs = {\n    6: 1/8,     # Thái Âm   — 12.5%\n    7: 3/8,     # Thiếu Dương — 37.5%\n    8: 3/8,     # Thiếu Âm   — 37.5%\n    9: 1/8,     # Thái Dương — 12.5%\n}\n\n# Đại Diễn Pháp thiên về Âm (8) hơn Dương (7)\n# → phản ánh triết lý: Âm (vạn vật) nhiều hơn Dương (trời)</code></pre>\n<h2>5. Triển Khai Thuật Toán</h2>\n<h3>5.1. Python</h3>\n<pre><code class=\"language-python\">import random\n\ndef yarrow_one_change(n_stalks):\n    &quot;&quot;&quot;Thực hiện 1 biến (thao tác) Đại Diễn Pháp.\n    \n    Args:\n        n_stalks: Số thẻ hiện có (49 cho biến 1, ít hơn cho biến 2, 3)\n    Returns:\n        Số thẻ bỏ ra (phần dư)\n    &quot;&quot;&quot;\n    # Chia ngẫu nhiên thành 2 nhóm\n    left = random.randint(1, n_stalks - 1)\n    right = n_stalks - left\n    \n    # Rút 1 từ nhóm phải (Tam Tài)\n    right -= 1\n    hand = 1\n    \n    # Đếm nhóm trái theo 4\n    left_remainder = left % 4\n    if left_remainder == 0:\n        left_remainder = 4\n    \n    # Đếm nhóm phải theo 4\n    right_remainder = right % 4\n    if right_remainder == 0:\n        right_remainder = 4\n    \n    return hand + left_remainder + right_remainder\n\n\ndef yarrow_one_line():\n    &quot;&quot;&quot;Tạo 1 hào bằng Đại Diễn Pháp (3 biến).\n    \n    Returns:\n        6 (Thái Âm), 7 (Thiếu Dương), 8 (Thiếu Âm), hoặc 9 (Thái Dương)\n    &quot;&quot;&quot;\n    stalks = 49\n    total_removed = 0\n    \n    for _ in range(3):  # 3 biến\n        removed = yarrow_one_change(stalks)\n        total_removed += removed\n        stalks -= removed\n    \n    # Thẻ còn lại chia 4 → giá trị hào\n    return stalks // 4\n\n\ndef yarrow_hexagram():\n    &quot;&quot;&quot;Tạo 1 quẻ 6 hào bằng Đại Diễn Pháp.\n    \n    Returns:\n        List 6 giá trị [hào 1 (dưới), ..., hào 6 (trên)]\n    &quot;&quot;&quot;\n    return [yarrow_one_line() for _ in range(6)]\n\n\n# Sử dụng\nhexagram = yarrow_hexagram()\nprint(f&quot;Quẻ: {hexagram}&quot;)\nfor i, line in enumerate(hexagram, 1):\n    names = {6: &quot;Thái Âm ⚋⚋&quot;, 7: &quot;Thiếu Dương ⚊&quot;, 8: &quot;Thiếu Âm ⚋&quot;, 9: &quot;Thái Dương ⚊⚊&quot;}\n    print(f&quot;  Hào {i}: {line} — {names[line]}&quot;)</code></pre>\n<h3>5.2. JavaScript</h3>\n<pre><code class=\"language-javascript\">/**\n * Đại Diễn Pháp (Yarrow Stalk Method)\n * Thuật toán bói Kinh Dịch cổ đại\n */\nfunction yarrowOneChange(nStalks) {\n  const left = Math.floor(Math.random() * (nStalks - 1)) + 1;\n  let right = nStalks - left - 1; // -1 cho thẻ Tam Tài\n  \n  let leftRem = left % 4 || 4;\n  let rightRem = right % 4 || 4;\n  \n  return 1 + leftRem + rightRem; // hand + left + right\n}\n\nfunction yarrowOneLine() {\n  let stalks = 49;\n  for (let i = 0; i &lt; 3; i++) {\n    stalks -= yarrowOneChange(stalks);\n  }\n  return stalks / 4; // 6, 7, 8, or 9\n}\n\nfunction yarrowHexagram() {\n  return Array.from({ length: 6 }, () =&gt; yarrowOneLine());\n}\n\n// Sử dụng\nconst hexagram = yarrowHexagram();\nconsole.log(&quot;Quẻ:&quot;, hexagram);</code></pre>\n<h3>5.3. C</h3>\n<pre><code class=\"language-c\">#include &lt;stdio.h&gt;\n#include &lt;stdlib.h&gt;\n#include &lt;time.h&gt;\n\nint yarrow_one_change(int n_stalks) {\n    int left = 1 + rand() % (n_stalks - 1);\n    int right = n_stalks - left - 1;\n    int left_rem = left % 4;\n    if (left_rem == 0) left_rem = 4;\n    int right_rem = right % 4;\n    if (right_rem == 0) right_rem = 4;\n    return 1 + left_rem + right_rem;\n}\n\nint yarrow_one_line(void) {\n    int stalks = 49;\n    for (int i = 0; i &lt; 3; i++)\n        stalks -= yarrow_one_change(stalks);\n    return stalks / 4;\n}\n\nint main(void) {\n    srand((unsigned)time(NULL));\n    printf(&quot;Quẻ Kinh Dịch (Đại Diễn Pháp):\\n&quot;);\n    for (int i = 0; i &lt; 6; i++)\n        printf(&quot;  Hào %d: %d\\n&quot;, i + 1, yarrow_one_line());\n    return 0;\n}</code></pre>\n<h2>6. So Sánh Với Các Phương Pháp Bói Dịch Khác</h2>\n<ul>\n<li>Đại Diễn Pháp (蓍草法): 50 cọng thi → 18 bước → xác suất không đều. Chậm nhất nhưng trang trọng nhất</li>\n<li>Gieo 3 đồng xu (擲錢法): 3 xu tung → 1 hào. Nhanh, xác suất đều P(6)=P(9)=1/8, P(7)=P(8)=3/8</li>\n<li>Phương pháp Chu Dịch Tiên Sinh: Dùng 6 đồng xu tung 1 lần → 1 quẻ. Nhanh nhất nhưng ít truyền thống</li>\n<li>Mai Hoa Dịch Số (梅花易數): Thiệu Ung — dùng số từ thời gian, sự kiện. Không cần công cụ vật lý</li>\n</ul>\n<h2>7. Đại Diễn Pháp Trong QuizzMan</h2>\n<p>Trong hệ thống Kinh Dịch của QuizzMan (lab.quizzman.com), Đại Diễn Pháp được triển khai với:</p>\n<ul>\n<li>Mô phỏng trực quan: Animation 49 thẻ chia nhóm, đếm, bỏ dư — giúp visualize toàn bộ 18 bước</li>\n<li>Entropy nguồn: Dùng CSPRNG (crypto.getRandomValues) thay vì Math.random() — đảm bảo tính ngẫu nhiên thật sự</li>\n<li>Kiểm chứng xác suất: Sau 1 triệu lần chạy, phân phối khớp với lý thuyết (6.25%, 31.25%, 43.75%, 18.75%)</li>\n<li>So sánh song song: Cùng 1 câu hỏi, xem kết quả từ Đại Diễn Pháp vs 3 đồng xu — thấy rõ sự khác biệt phân phối</li>\n</ul>","tags":["Kinh Dịch","Lịch sử","Thuật toán","Văn hóa"],"author":"System Legacy","publishedAt":"2026-04-04T07:48:11.009Z","updatedAt":"2026-07-17T02:35:43.825Z","published_at":"2026-04-04T07:48:11.009Z","updated_at":"2026-07-17T02:35:43.825Z","view_count":191,"canonical":"https://wiki.quizzman.com/wiki/dai-dien-phap-la-gi-thuat-toan-boi-kinh-dich-co-dai-50-thanh-thi","url":"https://wiki.quizzman.com/wiki/dai-dien-phap-la-gi-thuat-toan-boi-kinh-dich-co-dai-50-thanh-thi","markdownUrl":"https://wiki.quizzman.com/api/articles/dai-dien-phap-la-gi-thuat-toan-boi-kinh-dich-co-dai-50-thanh-thi.md","apiUrl":"https://wiki.quizzman.com/api/articles/dai-dien-phap-la-gi-thuat-toan-boi-kinh-dich-co-dai-50-thanh-thi"}