Tạo dãy Moser-de Bruijn ngay lập tức. Tính tổng các lũy thừa riêng biệt của 4 với biểu diễn cơ số 4 chỉ sử dụng 0 và 1. Công cụ trực tuyến miễn phí dành cho giáo dục và nghiên cứu toán học.
Các dãy Moser-de Bruijn chứa các số có thể được viết dưới dạng tổng của các lũy thừa 4 khác nhau
Dãy Moser-de Bruijn bao gồm các số có thể được biểu diễn như tổng của các lũy thừa 4 khác nhau. Được đặt theo tên các nhà toán học Leo Moser và Nicolaas Govert de Bruijn, dãy bắt đầu: 0, 1, 4, 5, 16, 17, 20, 21, 64, 65, 68, 69, 80, 81, 84, 85...
Điều gì làm cho dãy này thú vị? Khi bạn viết bất kỳ số hạng nào theo hệ cơ số 4, bạn sẽ chỉ thấy các chữ số 0 và 1 - không bao giờ là 2 hoặc 3. Điều này có nghĩa là mỗi số được xây dựng bằng cách cộng các lũy thừa của 4 (như 4⁰, 4¹, 4², 4³), trong đó mỗi lũy thừa xuất hiện một lần hoặc không xuất hiện.
Đây là một ví dụ thực tế: Số 21 xuất hiện trong dãy vì nó bằng 16 + 4 + 1, tức là 4² + 4¹ + 4⁰. Trong hệ cơ số 4, điều này được viết là "111" - chỉ có 0 và 1. So sánh với 22, số này sẽ cần một "2" trong biểu diễn cơ số 4 của nó (122), vì vậy nó không được chấp nhận.
Dãy này xuất hiện trong lý thuyết số bổ sung, tổ hợp học và nghiên cứu về các tập hợp không thể tổng. Hãy nghĩ nó như một "anh em" của hệ nhị phân ở cơ số 4 - thay vì các lũy thừa của 2, bạn đang làm việc với các lũy thừa của 4. Điều này tạo ra một dãy thưa thớt hơn nhiều vì hầu hết các số nguyên đều bị bỏ qua.
Việc sử dụng trình tạo này rất đơn giản:
Các phép tính được thực hiện hoàn toàn trong trình duyệt của bạn bằng JavaScript, do đó không có độ trễ từ máy chủ hay phụ thuộc internet—nhanh chóng và hoạt động ngoại tuyến ngay sau khi trang tải xong.
Trình tạo xác thực đầu vào của bạn để ngăn ngừa lỗi:
Tại sao giới hạn 1000 số? Mặc dù thuật toán hiệu quả, việc tạo hàng ngàn số có thể gây áp lực cho bộ nhớ trình duyệt, đặc biệt là trên các thiết bị di động. Trong thực tế, bạn hiếm khi cần nhiều hơn 100-200 số cho hầu hết các phân tích toán học hoặc mục đích giáo dục.
Bạn có thể xác định dãy Moser-de Bruijn theo ba cách tương đương, mỗi cách cung cấp những góc nhìn khác nhau:
Dạng Cộng (Lũy Thừa Của 4): Một số n thuộc dãy khi bạn có thể viết nó như: trong đó S là một tập hợp các số nguyên không âm. Mỗi lũy thừa của 4 có thể xuất hiện một lần hoặc không xuất hiện—không được lặp lại.
Biểu Diễn Cơ Số 4 (Phép Kiểm Tra Đơn Giản Nhất): Chuyển một số sang cơ số 4. Nếu bạn chỉ thấy các chữ số 0 và 1 (không có 2 hoặc 3), nó thuộc dãy. Đây là cách nhanh nhất để kiểm tra tính thành viên bằng tay.
Tương Ứng Nhị Phân (Hữu Ích Nhất Cho Việc Tính Toán): Để tìm số hạng thứ n (bắt đầu từ n=0): trong đó là các chữ số nhị phân của n. Nghĩa là: Lấy biểu diễn nhị phân của chỉ số của bạn, sau đó thay thế mỗi bit "1" bằng lũy thừa của 4 tương ứng.
Hãy xem các định nghĩa này hoạt động như thế nào:
Phương pháp tương ứng nhị phân là những gì trình tạo này sử dụng bên dưới—nó hiệu quả về mặt tính toán vì các thao tác bit rất nhanh.
Bộ sinh sử dụng tương ứng nhị phân vì nó nhanh và đơn giản:
Quy Trình Từng Bước:
Ví Dụ Cụ Thể: Tìm Thuật Ngữ Thứ 6 (chỉ số 5)
Hãy tính M(5) từng bước:
Phương pháp này mở rộng tốt. Với các chỉ số lớn, về cơ bản bạn đang thực hiện dịch bit và phép cộng—các thao tác mà các bộ xử lý hiện đại xử lý cực kỳ nhanh.
Muốn kiểm tra xem một số cụ thể có trong dãy Moser-de Bruijn không? Sử dụng bài kiểm tra hệ cơ số 4:
Ví Dụ: 85 có trong dãy không?
Ví Dụ Ngược: 90 có trong dãy không?
Bộ sinh thực hiện điều này bằng các toán tử bit của JavaScript, được tối ưu hóa gốc trong các trình duyệt hiện đại.
Dãy Moser-de Bruijn xử lý các số nguyên thuần túy:
Sự tăng trưởng theo cấp số nhân này có nghĩa là dãy số tăng nhanh. Thuật ngữ thứ 20 đã là 340, và đến thuật ngữ thứ 100 bạn đang xử lý các số hàng triệu.
Giảng Dạy Hệ Số: Khi tôi sử dụng điều này trong lớp học, sinh viên nắm bắt các phép chuyển đổi cơ số nhanh hơn nhiều khi có thể khám phá dãy Moser-de Bruijn. Nó tạo ra cầu nối giữa hệ nhị phân (cơ số 2) và các hệ số phức tạp hơn. Sinh viên ngay lập tức nhận thấy việc thay đổi cơ số sẽ thay đổi mật độ của dãy.
Hiểu Về Các Phép Toán Bit: Sinh viên khoa học máy tính được lợi từ việc nhìn thấy mối liên kết trực tiếp giữa biểu diễn nhị phân và các dãy số toán học. Thuật toán cho thấy cách thao tác bit được chuyển đổi thành các đối tượng toán học cụ thể—không chỉ là các phép toán trừu tượng.
Tổ Hợp và Tập Không Thể Cộng: Các nhà nghiên cứu nghiên cứu các cơ sở cộng sử dụng các dãy như thế này để khám phá các tập hợp cho phép biểu diễn duy nhất. Dãy Moser-de Bruijn là một ví dụ điển hình về một tập hợp mà mọi số có thể biểu diễn đều có chính xác một biểu diễn.
Lý Thuyết Số Cộng: Dãy này giúp điều tra các câu hỏi về cách các số nguyên có thể được phân tích thành các tổng. Nó liên quan đến các vấn đề trong Bách Khoa Toàn Thư Trực Tuyến về Dãy Số Nguyên (OEIS), nơi nó được lưu trữ như A000695.
Thiết Kế Thuật Toán: Thuật toán sinh dãy thể hiện việc xây dựng dãy hiệu quả. Bạn có thể sinh hàng ngàn số hạng với chi phí tính toán tối thiểu, làm cho nó hữu ích cho việc đánh giá thuật toán hoặc giảng dạy các mẫu mã hiệu quả.
Nhiệm Vụ Nhận Dạng Mẫu: Khi làm việc với các tập số nguyên thưa hoặc các lược đồ nén dữ liệu, việc hiểu cách các dãy như Moser-de Bruijn hoạt động giúp hỗ trợ các quyết định thiết kế về chiến lược mã hóa.
Nếu chuỗi Moser-de Bruijn khiến bạn quan tâm, những chuỗi liên quan sau đây cung cấp các mẫu tương tự với các cơ sở hoặc ràng buộc khác nhau:
Lũy Thừa Của 2 (OEIS A000079): 1, 2, 4, 8, 16, 32... Cơ sở cộng đơn giản nhất. Mỗi lũy thừa của 2 xuất hiện chính xác một lần, tạo nên các khối xây dựng của các số nhị phân.
Tất Cả Các Số Nguyên Không Âm (Tổng Nhị Phân): 0, 1, 2, 3, 4, 5, 6, 7... Khi bạn cho phép bất kỳ tổng nào của các lũy thừa 2 riêng biệt, bạn sẽ nhận được mọi số nguyên có thể—đó là những gì biểu diễn nhị phân làm.
Tổng Các Lũy Thừa 3 Riêng Biệt (OEIS A005836): 0, 1, 3, 4, 9, 10, 12, 13... Khái niệm tương tự như Moser-de Bruijn, nhưng sử dụng các lũy thừa của 3 thay vì 4. Đây là các số có biểu diễn cơ số 3 chỉ chứa 0 và 1.
Số Fibbinary (OEIS A003714): 0, 1, 2, 4, 5, 8, 9, 10... Các số có dạng nhị phân không chứa các số 1 liên tiếp. Liên quan đến hệ thống số Fibonacci và định lý Zeckendorf.
Chuỗi Stanley: Phiên bản cơ số 3 của Moser-de Bruijn—các số không có số 1 trong biểu diễn cơ số 3 (chỉ cho phép 0 và 2).
Bách Khoa Toàn Thư Trực Tuyến Về Dãy Số Nguyên (OEIS) lưu trữ hàng trăm nghìn dãy số. Tìm kiếm các thuật ngữ như "cơ sở cộng", "tập không thể cộng", hoặc "lũy thừa riêng biệt" để tìm các dãy số liên quan. Chính chuỗi Moser-de Bruijn nằm ở mục A000695 trong cơ sở dữ liệu OEIS.
Leo Moser (1921-1970) và Nicolaas Govert de Bruijn (1918-2012) đều có những đóng góp quan trọng cho toán học, mặc dù xuất thân từ các nền tảng khác nhau. Moser, một nhà toán học người Áo-Canada, đã làm việc chuyên sâu trong lý thuyết số, tổ hợp và hình học—bạn có thể nhận ra tên ông từ phương trình Erdős–Moser. De Bruijn, một nhà toán học Hà Lan, để lại dấu ấn trong lĩnh vực tổ hợp, lý thuyết đồ thị và khoa học máy tính. Các dãy de Bruijn (khác với dãy này) là nền tảng trong lý thuyết mã hóa và vẫn được sử dụng rộng rãi ngày nay.
Dãy mang tên của họ xuất hiện vào những năm 1960 trong quá trình nghiên cứu về lý thuyết số bổ sung. Các nhà toán học đã đặt câu hỏi: những tập hợp số nguyên nào cho phép biểu diễn duy nhất các số nguyên khác như các tổng? Các lũy thừa của 4 hóa ra là một trong những tập như vậy, và dãy Moser-de Bruijn nắm bắt tất cả các tổng có thể tạo được.
Dãy này nằm trong nghiên cứu rộng hơn về các cơ sở bổ sung—các tập hợp số nguyên có thể xây dựng các số nguyên khác thông qua phép cộng. Một số cơ sở cho phép biểu diễn duy nhất (như các lũy thừa của 4), trong khi những cái khác thì không. Việc hiểu rõ các cơ sở có những đặc tính gì vẫn là một lĩnh vực nghiên cứu đang hoạt động trong lý thuyết số bổ sung.
Bạn sẽ tìm thấy dãy số này tại A000695 trong OEIS, nơi các nhà toán học đã ghi lại các kết nối của nó với biểu diễn nhị phân, hệ thống tứ phân (cơ số 4) và các tính chất tổ hợp. Khoa học máy tính hiện đại đã tìm ra những ứng dụng mới cho nó, đặc biệt là trong các thuật toán liên quan đến thao tác bit và mã hóa hiệu quả các cấu trúc dữ liệu thưa.
Bạn muốn tự triển khai trình tạo dãy Moser-de Bruijn? Dưới đây là các triển khai hiệu quả bằng các ngôn ngữ lập trình phổ biến. Mỗi ví dụ bao gồm cả trình tạo dãy và hàm kiểm tra tính thuộc.
1def moser_de_bruijn(n):
2 """Tạo n số đầu tiên của dãy Moser-de Bruijn."""
3 sequence = []
4 for i in range(n):
5 term = 0
6 power = 1
7 temp = i
8 while temp > 0:
9 if temp & 1: # Kiểm tra bit ít có nghĩa nhất có phải 1 không
10 term += power
11 power *= 4
12 temp >>= 1 # Dịch phải để kiểm tra bit tiếp theo
13 sequence.append(term)
14 return sequence
15
16# Ví dụ sử dụng:
17terms = moser_de_bruijn(20)
18print("20 số đầu tiên của dãy Moser-de Bruijn:")
19print(terms)
20# Kết quả: [0, 1, 4, 5, 16, 17, 20, 21, 64, 65, 68, 69, 80, 81, 84, 85, 256, 257, 260, 261]
21
22def is_moser_de_bruijn(num):
23 """Kiểm tra xem một số có thuộc dãy Moser-de Bruijn không."""
24 while num > 0:
25 digit = num % 4
26 if digit > 1:
27 return False
28 num //= 4
29 return True
30
31# Kiểm tra xem 21 có trong dãy không
32print(f"21 có trong dãy không? {is_moser_de_bruijn(21)}") # True
33print(f"22 có trong dãy không? {is_moser_de_bruijn(22)}") # False
341function moserDeBruijn(n) {
2 const sequence = [];
3 for (let i = 0; i < n; i++) {
4 let term = 0;
5 let power = 1;
6 let temp = i;
7 while (temp > 0) {
8 if (temp & 1) { // Kiểm tra bit ít có nghĩa nhất có phải 1 không
9 term += power;
10 }
11 power *= 4;
12 temp >>= 1; // Dịch phải để kiểm tra bit tiếp theo
13 }
14 sequence.push(term);
15 }
16 return sequence;
17}
18
19// Ví dụ sử dụng:
20const terms = moserDeBruijn(20);
21console.log("20 số đầu tiên của dãy Moser-de Bruijn:");
22console.log(terms);
23// Kết quả: [0, 1, 4, 5, 16, 17, 20, 21, 64, 65, 68, 69, 80, 81, 84, 85, 256, 257, 260, 261]
24
25function isMoserDeBruijn(num) {
26 while (num > 0) {
27 const digit = num % 4;
28 if (digit > 1) {
29 return false;
30 }
31 num = Math.floor(num / 4);
32 }
33 return true;
34}
35
36// Kiểm tra các số cụ thể
37console.log(`21 có trong dãy không? ${isMoserDeBruijn(21)}`); // true
38console.log(`22 có trong dãy không? ${isMoserDeBruijn(22)}`); // false
391import java.util.ArrayList;
2import java.util.List;
3
4public class MoserDeBruijnGenerator {
5
6 public static List<Integer> generateSequence(int n) {
7 List<Integer> sequence = new ArrayList<>();
8 for (int i = 0; i < n; i++) {
9 int term = 0;
10 int power = 1;
11 int temp = i;
12 while (temp > 0) {
13 if ((temp & 1) == 1) { // Kiểm tra bit ít có nghĩa nhất có phải 1 không
14 term += power;
15 }
16 power *= 4;
17 temp >>= 1; // Dịch phải để kiểm tra bit tiếp theo
18 }
19 sequence.add(term);
20 }
21 return sequence;
22 }
23
24 public static boolean isMoserDeBruijn(int num) {
25 while (num > 0) {
26 int digit = num % 4;
27 if (digit > 1) {
28 return false;
29 }
30 num /= 4;
31 }
32 return true;
33 }
34
35 public static void main(String[] args) {
36 List<Integer> terms = generateSequence(20);
37 System.out.println("20 số đầu tiên của dãy Moser-de Bruijn:");
38 System.out.println(terms);
39
40 System.out.println("21 có trong dãy không? " + isMoserDeBruijn(21)); // true
41 System.out.println("22 có trong dãy không? " + isMoserDeBruijn(22)); // false
42 }
43}
441#include <iostream>
2#include <vector>
3
4std::vector<int> moserDeBruijn(int n) {
5 std::vector<int> sequence;
6 for (int i = 0; i < n; i++) {
7 int term = 0;
8 int power = 1;
9 int temp = i;
10 while (temp > 0) {
11 if (temp & 1) { // Kiểm tra bit ít có nghĩa nhất có phải 1 không
12 term += power;
13 }
14 power *= 4;
15 temp >>= 1; // Dịch phải để kiểm tra bit tiếp theo
16 }
17 sequence.push_back(term);
18 }
19 return sequence;
20}
21
22bool isMoserDeBruijn(int num) {
23 while (num > 0) {
24 int digit = num % 4;
25 if (digit > 1) {
26 return false;
27 }
28 num /= 4;
29 }
30 return true;
31}
32
33int main() {
34 std::vector<int> terms = moserDeBruijn(20);
35 std::cout << "20 số đầu tiên của dãy Moser-de Bruijn:" << std::endl;
36 for (int term : terms) {
37 std::cout << term << " ";
38 }
39 std::cout << std::endl;
40
41 std::cout << "21 có trong dãy không? " << (isMoserDeBruijn(21) ? "true" : "false") << std::endl;
42 std::cout << "22 có trong dãy không? " << (isMoserDeBruijn(22) ? "true" : "false") << std::endl;
43
44 return 0;
45}
46Tất cả các triển khai này đều tuân theo cùng một mẫu: sử dụng các thao tác bit để đọc biểu diễn nhị phân của một chỉ số, sau đó xây dựng tổng tương ứng của các lũy thừa 4. Các hàm kiểm tra tính thuộc sử dụng phương pháp cơ sở 4 - kiểm tra xem các chữ số có bị giới hạn ở 0 và 1 không.
Về mặt hiệu năng, những triển khai này rất hiệu quả. Độ phức tạp thời gian là O(n × log n) để tạo n số hạng, vì mỗi số hạng yêu cầu kiểm tra O(log i) bit. Kiểm tra tính thuộc của một số đơn lẻ là O(log N) với N là số được kiểm tra.
Bảng dưới đây hiển thị 32 số hạng đầu tiên với các phân tích chi tiết. Lưu ý cách biểu diễn cơ số 4 chỉ chứa các số 0 và 1, và cách phân tích ánh xạ trực tiếp đến các chỉ số nhị phân:
| Chỉ số | Số hạng | Phân tích | Cơ số 4 |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 1 | 1 | 4⁰ | 1 |
| 2 | 4 | 4¹ | 10 |
| 3 | 5 | 4¹ + 4⁰ | 11 |
| 4 | 16 | 4² | 100 |
| 5 | 17 | 4² + 4⁰ | 101 |
| 6 | 20 | 4² + 4¹ | 110 |
| 7 | 21 | 4² + 4¹ + 4⁰ | 111 |
| 8 | 64 | 4³ | 1000 |
| 9 | 65 | 4³ + 4⁰ | 1001 |
| 10 | 68 | 4³ + 4¹ | 1010 |
| 11 | 69 | 4³ + 4¹ + 4⁰ | 1011 |
| 12 | 80 | 4³ + 4² | 1100 |
| 13 | 81 | 4³ + 4² + 4⁰ | 1101 |
| 14 | 84 | 4³ + 4² + 4¹ | 1110 |
| 15 | 85 | 4³ + 4² + 4¹ + 4⁰ | 1111 |
| 16 | 256 | 4⁴ | 10000 |
| 17 | 257 | 4⁴ + 4⁰ | 10001 |
| 18 | 260 | 4⁴ + 4¹ | 10010 |
| 19 | 261 | 4⁴ + 4¹ + 4⁰ | 10011 |
| 20 | 272 | 4⁴ + 4² | 10100 |
| 21 | 273 | 4⁴ + 4² + 4⁰ | 10101 |
| 22 | 276 | 4⁴ + 4² + 4¹ | 10110 |
| 23 | 277 | 4⁴ + 4² + 4¹ + 4⁰ | 10111 |
| 24 | 320 | 4⁴ + 4³ | 11000 |
| 25 | 321 | 4⁴ + 4³ + 4⁰ | 11001 |
| 26 | 324 | 4⁴ + 4³ + 4¹ | 11010 |
| 27 | 325 | 4⁴ + 4³ + 4¹ + 4⁰ | 11011 |
| 28 | 336 | 4⁴ + 4³ + 4² | 11100 |
| 29 | 337 | 4⁴ + 4³ + 4² + 4⁰ | 11101 |
| 30 | 340 | 4⁴ + 4³ + 4² + 4¹ | 11110 |
| 31 | 341 | 4⁴ + 4³ + 4² + 4¹ + 4⁰ | 11111 |
Hãy phân tích hoàn toàn số hạng 21:
Thấy mẫu chưa? Chỉ số nhị phân (111) ánh xạ trực tiếp đến các lũy thừa của 4 cần bao gồm. Mỗi bit "1" cho bạn biết phải bao gồm lũy thừa đó.
Dãy tăng theo hàm mũ—số hạng thứ n xấp xỉ tỷ lệ với 4^(log₂(n)). Điều này có nghĩa là gì trong thực tế?
Khi các số lớn hơn, dãy trở nên ngày càng thưa thớt. Bạn bỏ qua ngày càng nhiều số nguyên. Mặc dù có tính thưa thớt này, dãy vẫn chứa vô số số hạng—nó không bao giờ ngừng tăng.
OEIS A000695 - Dãy Moser-de Bruijn. Bách khoa toán học trực tuyến về Dãy số nguyên. Dữ liệu và tính chất toàn diện của dãy.
De Bruijn, N. G. "Về các cơ sở của tập số nguyên." Publicationes Mathematicae Debrecen, tập 1, 1950, tr. 232-242. Bài báo nền tảng thiết lập các tính chất chính của các cơ sở cộng.
Moser, Leo. "Một ứng dụng của các hàm sinh." Mathematics Magazine, tập 35, số 1, 1962, tr. 37-38. Công trình ban đầu khám phá các hàm sinh của dãy.
Stolarsky, Kenneth B. "Tổng lũy thừa và số mũ của tổng chữ số liên quan đến tính chẵn lẻ của hệ số nhị thức." SIAM Journal on Applied Mathematics, tập 32, số 4, 1977, tr. 717-730. Khám phá các tính chất tổng chữ số liên quan đến các dãy như Moser-de Bruijn.
Allouche, Jean-Paul, và Jeffrey Shallit. Dãy Tự động: Lý thuyết, Ứng dụng, Khái quát hóa. Nhà xuất bản Đại học Cambridge, 2003. Chương trình bao gồm các dãy tự động, bao gồm các kết nối với dãy Moser-de Bruijn.
Tập Không Tổng - Wikipedia. Bối cảnh toán học rộng hơn về lý thuyết số cộng.
Cơ Sở Cộng - Wikipedia. Tổng quan về các tập biểu diễn số nguyên dưới dạng tổng.
Dãy này có một số ứng dụng: nghiên cứu lý thuyết số về các cơ sở cộng, công việc tổ hợp về các tập hợp không thể cộng, giáo dục khoa học máy tính (đặc biệt là giảng dạy các thao tác bit và các thuật toán hiệu quả), và phân tích mẫu toán học. Nó cũng là một công cụ giảng dạy tuyệt vời để hiểu cách các hệ số khác nhau liên quan đến nhau.
Lấy mỗi chỉ số n bắt đầu từ 0, chuyển đổi sang nhị phân, sau đó thay thế mỗi bit "1" bằng lũy thừa tương ứng của 4. Ví dụ, chỉ số 5 có biểu diễn nhị phân là 101, vì vậy bạn tính 4² + 4⁰ = 16 + 1 = 17. Đó là số hạng thứ 5 (tính từ chỉ số 0).
Mỗi số trong dãy đều có một thuộc tính riêng: biểu diễn cơ số 4 của nó chỉ chứa 0 và 1 - không bao giờ có 2 hoặc 3. Điều này có nghĩa là bạn có thể xây dựng mỗi số hạng bằng cách cộng các lũy thừa của 4 trong đó mỗi lũy thừa xuất hiện nhiều nhất một lần. Nó giống như hệ nhị phân, nhưng sử dụng lũy thừa của 4 thay vì lũy thừa của 2.
Chuyển đổi số của bạn sang cơ số 4 và xem các chữ số. Nếu bạn chỉ thấy 0 và 1, nó nằm trong dãy. Nếu bất kỳ chữ số nào là 2 hoặc 3, nó sẽ không nằm trong dãy. Ví dụ, 21 trong cơ số 4 là 111 (toàn 1 và 0), vì vậy nó nằm trong dãy. Nhưng 22 trong cơ số 4 là 112 (chứa 2), vì vậy nó không nằm trong dãy.
Số hạng thứ n M(n) tuân theo công thức này: M(n) = Σ(b_i × 4^i), trong đó b_i biểu thị các chữ số nhị phân của n. Nói một cách đơn giản: viết n ở dạng nhị phân, sau đó đối với mỗi vị trí có 1, cộng lũy thừa 4 tương ứng.
Có, nó sẽ tiếp tục mãi mãi. Có vô số số hạng trong dãy Moser-de Bruijn. Tuy nhiên, khi bạn đi cao hơn, dãy trở nên ngày càng thưa thớt - bạn bỏ qua ngày càng nhiều số nguyên thông thường giữa các thành viên của dãy.
Các dãy nhị phân (tổng của các lũy thừa 2) có thể biểu diễn mọi số không âm - đó là những gì biểu diễn nhị phân làm. Dãy Moser-de Bruijn sử dụng các lũy thừa của 4 thay thế, điều này tạo ra một tập hợp thưa thớt hơn nhiều. Hầu hết các số nguyên không xuất hiện trong dãy Moser-de Bruijn.
Leo Moser (1921-1970), một nhà toán học người Áo-Canada, và Nicolaas Govert de Bruijn (1918-2012), một nhà toán học người Hà Lan, đã nghiên cứu sâu về dãy này trong những năm 1960 như một phần của nghiên cứu về lý thuyết số cộng. Dãy mang tên của cả hai nhà toán học.
Trình tạo này chạy hoàn toàn trong trình duyệt của bạn—không cần cài đặt, không đăng ký, không chờ đợi. Cho dù bạn là một sinh viên đang học về hệ số, một nhà nghiên cứu khám phá các cơ sở cộng, hay chỉ đơn giản là người tò mò về toán học, bạn có thể tạo ra các thuật ngữ ngay lập tức và tự mình quan sát các mẫu. Hãy thử tạo ra các số lượng khác nhau để xem chuỗi phát triển như thế nào và những số nguyên nào được đưa vào.
Khám phá thêm các công cụ có thể hữu ích cho quy trình làm việc của bạn