Δημιουργήστε ακολουθίες Moser-de Bruijn στιγμιαία. Υπολογίστε αθροίσματα διακριτών δυνάμεων του 4 με αναπαραστάσεις βάσης-4 χρησιμοποιώντας μόνο 0 και 1. Δωρεάν διαδικτυακό εργαλείο για εκπαίδευση και έρευνα στα μαθηματικά.
Οι ακολουθίες Moser-de Bruijn περιέχουν αριθμούς που μπορούν να γραφτούν ως αθροίσματα διακριτών δυνάμεων του 4
Η ακολουθία Moser-de Bruijn αποτελείται από αριθμούς που μπορούν να εκφραστούν ως αθροίσματα διακριτών δυνάμεων του 4. Ονομασμένη προς τιμήν των μαθηματικών Leo Moser και Nicolaas Govert de Bruijn, η ακολουθία ξεκινά: 0, 1, 4, 5, 16, 17, 20, 21, 64, 65, 68, 69, 80, 81, 84, 85...
Τι κάνει αυτή την ακολουθία ενδιαφέρουσα; Όταν γράψετε οποιοδήποτε όρο σε βάση 4, θα δείτε μόνο τα ψηφία 0 και 1 - ποτέ 2 ή 3. Αυτό σημαίνει ότι κάθε αριθμός κατασκευάζεται προσθέτοντας δυνάμεις του 4 (όπως 4⁰, 4¹, 4², 4³), όπου κάθε δύναμη εμφανίζεται μία φορά ή καθόλου.
Ορίστε ένα πρακτικό παράδειγμα: Ο αριθμός 21 εμφανίζεται στην ακολουθία επειδή ισούται με 16 + 4 + 1, που είναι 4² + 4¹ + 4⁰. Σε βάση 4, αυτό γράφεται ως "111" - μόνο 0 και 1. Συγκρίνετε αυτό με το 22, το οποίο θα χρειαζόταν ένα "2" στην αναπαράστασή του σε βάση 4 (122), οπότε δεν γίνεται δεκτό.
Η ακολουθία εμφανίζεται στην προσθετική θεωρία αριθμών, συνδυαστική και έρευνα σε σύνολα χωρίς άθροισμα. Σκεφτείτε το ως ένα ξάδερφο της δυαδικής βάσης - αντί για δυνάμεις του 2, δουλεύετε με δυνάμεις του 4. Αυτό δημιουργεί μια πολύ αραιότερη ακολουθία καθώς οι περισσότεροι ακέραιοι παραλείπονται.
Η χρήση αυτού του γεννήτορα είναι απλή:
Οι υπολογισμοί εκτελούνται πλήρως στο πρόγραμμα περιήγησής σας χρησιμοποιώντας JavaScript, οπότε δεν υπάρχει καθυστέρηση διακομιστή ή εξάρτηση από το διαδίκτυο - είναι γρήγορο και λειτουργεί χωρίς σύνδεση μόλις φορτωθεί η σελίδα.
Ο γεννήτορας επικυρώνει την είσοδό σας για να αποτρέψει σφάλματα:
Γιατί το όριο των 1000 όρων; Παρόλο που ο αλγόριθμος είναι αποδοτικός, η δημιουργία χιλιάδων όρων μπορεί να καταπονήσει τη μνήμη του προγράμματος περιήγησης, ειδικά σε κινητές συσκευές. Στην πράξη, σπάνια θα χρειαστείτε περισσότερους από 100-200 όρους για τις περισσότερες μαθηματικές αναλύσεις ή εκπαιδευτικούς σκοπούς.
Μπορείτε να ορίσετε την ακολουθία Moser-de Bruijn με τρεις ισοδύναμους τρόπους, ο καθένας προσφέροντας διαφορετικές ιδέες:
Προσθετική Μορφή (Δυνάμεις του 4): Ένας αριθμός n ανήκει στην ακολουθία όταν μπορείτε να τον γράψετε ως: όπου S είναι οποιοδήποτε σύνολο μη αρνητικών ακεραίων. Κάθε δύναμη του 4 μπορεί να εμφανιστεί μία φορά ή καθόλου - δεν επιτρέπονται επαναλήψεις.
Αναπαράσταση στη Βάση 4 (Απλούστερος Έλεγχος): Μετατρέψτε έναν αριθμό σε βάση 4. Αν δείτε μόνο 0 και 1 (χωρίς 2 ή 3), είναι στην ακολουθία. Αυτός είναι ο γρηγορότερος τρόπος να ελέγξετε την συμμετοχή με το χέρι.
Αντιστοιχία Δυαδικού Συστήματος (Πιο Χρήσιμο για Υπολογισμό): Για να βρείτε τον n-οστό όρο (ξεκινώντας από n=0): όπου είναι τα δυαδικά ψηφία του n. Μετάφραση: Πάρτε την δυαδική αναπαράσταση του ευρετηρίου σας, και στη συνέχεια αντικαταστήστε κάθε bit "1" με την αντίστοιχη δύναμη του 4.
Ας δούμε πώς αυτοί οι ορισμοί λειτουργούν:
Η μέθοδος αντιστοιχίας δυαδικού συστήματος είναι αυτό που χρησιμοποιεί αυτός ο γεννήτορας στο παρασκήνιο - είναι υπολογιστικά αποδοτική επειδή οι πράξεις bit είναι γρήγορες.
Ο γεννήτορας χρησιμοποιεί δυαδική αντιστοίχιση επειδή είναι γρήγορος και απλός:
Διαδικασία Βήμα προς Βήμα:
Παράδειγμα Επεξεργασίας: Εύρεση του 6ου όρου (δείκτης 5)
Ας υπολογίσουμε το M(5) βήμα προς βήμα:
Αυτή η μέθοδος κλιμακώνεται καλά. Για μεγάλους δείκτες, ουσιαστικά κάνεις μετατόπιση bit και πρόσθεση—λειτουργίες που οι σύγχρονοι επεξεργαστές χειρίζονται εξαιρετικά γρήγορα.
Θέλεις να ελέγξεις αν ένας συγκεκριμένος αριθμός είναι στην ακολουθία Moser-de Bruijn; Χρησιμοποίησε τον έλεγχο βάσης-4:
Παράδειγμα: Είναι το 85 στην ακολουθία;
Αντιπαράδειγμα: Είναι το 90 στην ακολουθία;
Ο γεννήτορας υλοποιεί αυτό χρησιμοποιώντας τους bitwise τελεστές της JavaScript, οι οποίοι είναι εγγενείς στη γλώσσα και πολύ βελτιστοποιημένοι στους σύγχρονους φυλλομετρητές.
Η ακολουθία Moser-de Bruijn ασχολείται με καθαρούς ακεραίους:
Αυτή η εκθετική αύξηση σημαίνει ότι η ακολουθία μεγαλώνει γρήγορα. Ο 20ός όρος είναι ήδη 340, και στον 100ό όρο ασχολείσαι με αριθμούς εκατομμυρίων.
Διδασκαλία Αριθμητικών Συστημάτων: Όταν το χρησιμοποίησα σε αίθουσες διδασκαλίας, οι μαθητές κατανοούν τις μετατροπές βάσης πολύ πιο γρήγορα όταν μπορούν να πειραματιστούν με την ακολουθία Moser-de Bruijn. Γεφυρώνει το χάσμα μεταξύ δυαδικού (βάσης 2) και πιο σύνθετων αριθμητικών συστημάτων. Οι μαθητές βλέπουν αμέσως πώς η αλλαγή της βάσης αλλάζει την πυκνότητα της ακολουθίας.
Κατανόηση Bitwise Πράξεων: Οι φοιτητές πληροφορικής επωφελούνται βλέποντας την άμεση σύνδεση μεταξύ δυαδικής αναπαράστασης και μαθηματικών ακολουθιών. Ο αλγόριθμος δείχνει πώς ο χειρισμός bit μεταφράζεται σε πραγματικά μαθηματικά αντικείμενα - όχι μόνο αφηρημένες λειτουργίες.
Συνδυαστική και Σύνολα Χωρίς Άθροισμα: Ερευνητές που μελετούν προσθετικές βάσεις χρησιμοποιούν ακολουθίες σαν αυτή για να εξερευνήσουν ποια σύνολα επιτρέπουν μοναδικές αναπαραστάσεις. Η ακολουθία Moser-de Bruijn είναι ένα διδακτικό παράδειγμα ενός συνόλου όπου κάθε αναπαραστάσιμος αριθμός έχει ακριβώς μία αναπαράσταση.
Προσθετική Θεωρία Αριθμών: Η ακολουθία βοηθά στη διερεύνηση ερωτημάτων σχετικά με το πώς οι ακέραιοι μπορούν να αποσυντεθούν σε αθροίσματα. Σχετίζεται με προβλήματα στην Διαδικτυακή Εγκυκλοπαίδεια Ακολουθιών Ακεραίων (OEIS), όπου καταγράφεται ως A000695.
Σχεδιασμός Αλγορίθμων: Ο αλγόριθμος παραγωγής επιδεικνύει αποτελεσματική κατασκευή ακολουθίας. Μπορείτε να παράγετε χιλιάδες όρους με ελάχιστο υπολογιστικό κόστος, καθιστώντας τον χρήσιμο για συγκριτική αξιολόγηση αλγορίθμων ή διδασκαλία αποδοτικών προτύπων κώδικα.
Εργασίες Αναγνώρισης Προτύπων: Όταν εργάζεστε με αραιά σύνολα ακεραίων ή σχήματα συμπίεσης δεδομένων, η κατανόηση της συμπεριφοράς ακολουθιών όπως το Moser-de Bruijn βοηθά στη λήψη σχεδιαστικών αποφάσεων σχετικά με στρατηγικές κωδικοποίησης.
Εάν σας ενδιαφέρει η ακολουθία Moser-de Bruijn, αυτές οι σχετικές ακολουθίες προσφέρουν παρόμοια μοτίβα με διαφορετικές βάσεις ή περιορισμούς:
Δυνάμεις του 2 (OEIS A000079): 1, 2, 4, 8, 16, 32... Η απλούστερη προσθετική βάση. Κάθε δύναμη του 2 εμφανίζεται ακριβώς μία φορά, σχηματίζοντας τα δομικά στοιχεία των δυαδικών αριθμών.
Όλοι οι Μη-Αρνητικοί Ακέραιοι (Δυαδικά Αθροίσματα): 0, 1, 2, 3, 4, 5, 6, 7... Όταν επιτρέπετε οποιοδήποτε άθροισμα διακριτών δυνάμεων του 2, παίρνετε κάθε δυνατό ακέραιο—αυτό κάνει η δυαδική αναπαράσταση.
Αθροίσματα Διακριτών Δυνάμεων του 3 (OEIS A005836): 0, 1, 3, 4, 9, 10, 12, 13... Το ίδιο σκεπτικό με το Moser-de Bruijn, αλλά χρησιμοποιώντας δυνάμεις του 3 αντί του 4. Αυτοί είναι αριθμοί των οποίων η αναπαράσταση στη βάση 3 περιέχει μόνο 0 και 1.
Fibbinary Αριθμοί (OEIS A003714): 0, 1, 2, 4, 5, 8, 9, 10... Αριθμοί των οποίων η δυαδική μορφή δεν έχει διαδοχικά 1. Συνδέονται με συστήματα αριθμών Fibonacci και το θεώρημα του Zeckendorf.
Ακολουθία Stanley: Το αναλόγιο βάσης 3 του Moser-de Bruijn—αριθμοί χωρίς 1 στην αναπαράσταση βάσης 3 (επιτρέπονται μόνο 0 και 2).
Η Διαδικτυακή Εγκυκλοπαίδεια Ακολουθιών Ακεραίων (OEIS) καταγράφει εκατοντάδες χιλιάδες ακολουθίες. Αναζητήστε όρους όπως "προσθετική βάση", "σύνολο χωρίς άθροισμα" ή "διακριτές δυνάμεις" για να βρείτε σχετικές ακολουθίες. Η ίδια η ακολουθία Moser-de Bruijn είναι A000695 στη βάση δεδομένων OEIS.
Ο Leo Moser (1921-1970) και ο Nicolaas Govert de Bruijn (1918-2012) έκαναν σημαντικές συνεισφορές στα μαθηματικά, παρά τις διαφορετικές τους καταβολές. Ο Moser, ένας αυστριακο-καναδός μαθηματικός, εργάστηκε εκτενώς στη θεωρία αριθμών, τον συνδυαστικό λογισμό και τη γεωμετρία—ίσως αναγνωρίζετε το όνομά του από την εξίσωση Erdős–Moser. Ο de Bruijn, ένας ολλανδός μαθηματικός, άφησε το στίγμα του στον συνδυαστικό λογισμό, τη θεωρία γραφημάτων και την πληροφορική. Οι ακολουθίες de Bruijn (διαφορετικές από αυτή) είναι θεμελιώδεις στη θεωρία κωδικοποίησης και εξακολουθούν να χρησιμοποιούνται ευρέως σήμερα.
Η ονομαστική τους ακολουθία προέκυψε τη δεκαετία του 1960 κατά τη διερεύνηση της προσθετικής θεωρίας αριθμών. Οι μαθηματικοί διερωτώνταν: ποια σύνολα ακεραίων επιτρέπουν τη μοναδική αναπαράσταση άλλων ακεραίων ως αθροισμάτων; Οι δυνάμεις του 4 αποδείχθηκαν ένα τέτοιο σύνολο, και η ακολουθία Moser-de Bruijn καταγράφει όλα τα πιθανά αθροίσματα που μπορείτε να κάνετε.
Η ακολουθία βρίσκεται στο πλαίσιο της ευρύτερης μελέτης των προσθετικών βάσεων—συνόλων ακεραίων που μπορούν να δημιουργήσουν άλλους ακεραίους μέσω πρόσθεσης. Κάποιες βάσεις επιτρέπουν μοναδικές αναπαραστάσεις (όπως οι δυνάμεις του 4), ενώ άλλες όχι. Η κατανόηση των ιδιοτήτων των βάσεων παραμένει ένας ενεργός τομέας έρευνας στην προσθετική θεωρία αριθμών.
Θα βρείτε αυτή την ακολουθία ως A000695 στο OEIS, όπου οι μαθηματικοί έχουν τεκμηριώσει τις συνδέσεις της με τη δυαδική αναπαράσταση, τα τεταρτοβάθμια (βάσης-4) συστήματα και τις συνδυαστικές ιδιότητες. Η σύγχρονη πληροφορική έχει βρει νέες χρήσεις γι' αυτήν, ιδιαίτερα σε αλγορίθμους που αφορούν χειρισμό bit και αποδοτική κωδικοποίηση αραιών δομών δεδομένων.
Θέλετε να υλοποιήσετε μόνοι σας τον γεννήτορα της ακολουθίας Moser-de Bruijn; Εδώ υπάρχουν αποδοτικές υλοποιήσεις σε δημοφιλείς γλώσσες προγραμματισμού. Κάθε παράδειγμα περιλαμβάνει τόσο έναν γεννήτορα ακολουθίας όσο και μια συνάρτηση ελέγχου συμμετοχής.
1def moser_de_bruijn(n):
2 """Δημιουργία των πρώτων n όρων της ακολουθίας 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: # Έλεγχος αν το λιγότερο σημαντικό bit είναι 1
10 term += power
11 power *= 4
12 temp >>= 1 # Δεξιά μετατόπιση για έλεγχο επόμενου bit
13 sequence.append(term)
14 return sequence
15
16# Παράδειγμα χρήσης:
17terms = moser_de_bruijn(20)
18print("Πρώτοι 20 όροι της ακολουθίας Moser-de Bruijn:")
19print(terms)
20# Έξοδος: [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 """Έλεγχος αν ένας αριθμός είναι στην ακολουθία Moser-de Bruijn."""
24 while num > 0:
25 digit = num % 4
26 if digit > 1:
27 return False
28 num //= 4
29 return True
30
31# Έλεγχος αν το 21 είναι στην ακολουθία
32print(f"Είναι το 21 στην ακολουθία; {is_moser_de_bruijn(21)}") # True
33print(f"Είναι το 22 στην ακολουθία; {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) { // Έλεγχος αν το λιγότερο σημαντικό bit είναι 1
9 term += power;
10 }
11 power *= 4;
12 temp >>= 1; // Δεξιά μετατόπιση για έλεγχο επόμενου bit
13 }
14 sequence.push(term);
15 }
16 return sequence;
17}
18
19// Παράδειγμα χρήσης:
20const terms = moserDeBruijn(20);
21console.log("Πρώτοι 20 όροι της ακολουθίας Moser-de Bruijn:");
22console.log(terms);
23// Έξοδος: [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// Έλεγχος συγκεκριμένων αριθμών
37console.log(`Είναι το 21 στην ακολουθία; ${isMoserDeBruijn(21)}`); // true
38console.log(`Είναι το 22 στην ακολουθία; ${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) { // Έλεγχος αν το λιγότερο σημαντικό bit είναι 1
14 term += power;
15 }
16 power *= 4;
17 temp >>= 1; // Δεξιά μετατόπιση για έλεγχο επόμενου bit
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 όροι της ακολουθίας Moser-de Bruijn:");
38 System.out.println(terms);
39
40 System.out.println("Είναι το 21 στην ακολουθία; " + isMoserDeBruijn(21)); // true
41 System.out.println("Είναι το 22 στην ακολουθία; " + 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) { // Έλεγχος αν το λιγότερο σημαντικό bit είναι 1
12 term += power;
13 }
14 power *= 4;
15 temp >>= 1; // Δεξιά μετατόπιση για έλεγχο επόμενου bit
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 όροι της ακολουθίας 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 στην ακολουθία; " << (isMoserDeBruijn(21) ? "true" : "false") << std::endl;
42 std::cout << "Είναι το 22 στην ακολουθία; " << (isMoserDeBruijn(22) ? "true" : "false") << std::endl;
43
44 return 0;
45}
46Όλες αυτές οι υλοποιήσεις ακολουθούν το ίδιο μοτίβο: χρησιμοποιούν bitwise λειτουργίες για να διαβάσουν τη δυαδική αναπαράσταση ενός δείκτη και στη συνέχεια να κατασκευάσουν το αντίστοιχο άθροισμα δυνάμεων του 4. Οι συναρτήσεις ελέγχου συμμετοχής χρησιμοποιούν την προσέγγιση βάσης-4 - ελέγχοντας αν τα ψηφία περιορίζονται σε 0 και 1.
Από πλευράς απόδοσης, αυτές οι υλοποιήσεις είναι εξαιρετικά αποδοτικές. Η χρονική πολυπλοκότητα είναι O(n × log n) για τη δημιουργία n όρων, καθώς κάθε όρος απαιτεί εξέταση O(log i) bits. Ο έλεγχος συμμετοχής για έναν μεμονωμένο αριθμό είναι O(log N) όπου N είναι ο αριθμός που ελέγχεται.
Ο παρακάτω πίνακας δείχνει τους πρώτους 32 όρους με πλήρεις αναλύσεις. Παρατηρήστε πώς η αναπαράσταση βάσης-4 περιέχει μόνο 0 και 1, και πώς η αποσύνθεση αντιστοιχεί άμεσα σε δυαδικούς δείκτες:
| Δείκτης | Όρος | Αποσύνθεση | Βάση-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 |
Ας αναλύσουμε πλήρως τον όρο 21:
Βλέπετε το μοτίβο; Ο δυαδικός δείκτης (111) αντιστοιχεί άμεσα στις δυνάμεις του 4 που πρέπει να συμπεριληφθούν. Κάθε "1" bit σας λέει να συμπεριλάβετε εκείνη τη δύναμη.
Η ακολουθία αυξάνεται εκθετικά—ο n-οστός όρος είναι περίπου ανάλογος του 4^(log₂(n)). Τι σημαίνει αυτό πρακτικά;
Καθώς οι αριθμοί μεγαλώνουν, η ακολουθία γίνεται όλο και πιο αραιή. Παραλείπετε όλο και περισσότερους ακεραίους. Παρά αυτή την αραιότητα, η ακολουθία περιέχει άπειρους όρους—δεν σταματά ποτέ να αυξάνεται.
OEIS A000695 - Ακολουθία Moser-de Bruijn. Η Διαδικτυακή Εγκυκλοπαίδεια Ακολουθιών Ακεραίων. Περιεκτικά δεδομένα και ιδιότητες της ακολουθίας.
De Bruijn, N. G. "Περί Βάσεων για το Σύνολο των Ακεραίων." Publicationes Mathematicae Debrecen, τόμ. 1, 1950, σσ. 232-242. Το θεμελιώδες άρθρο που καθορίζει βασικές ιδιότητες προσθετικών βάσεων.
Moser, Leo. "Μια Εφαρμογή Γεννητικών Σειρών." Mathematics Magazine, τόμ. 35, αρ. 1, 1962, σσ. 37-38. Πρώιμη εργασία που διερευνά τις γεννητικές συναρτήσεις της ακολουθίας.
Stolarsky, Kenneth B. "Δυναμικά και Εκθετικά Αθροίσματα Ψηφιακών Αθροισμάτων Σχετικά με την Περιττότητα των Διωνυμικών Συντελεστών." SIAM Journal on Applied Mathematics, τόμ. 32, αρ. 4, 1977, σσ. 717-730. Διερευνά ιδιότητες ψηφιακών αθροισμάτων σχετικές με ακολουθίες όπως η Moser-de Bruijn.
Allouche, Jean-Paul, και Jeffrey Shallit. Αυτόματες Ακολουθίες: Θεωρία, Εφαρμογές, Γενικεύσεις. Cambridge University Press, 2003. Κεφάλαιο που καλύπτει αυτόματες ακολουθίες, συμπεριλαμβανομένων συνδέσεων με την ακολουθία Moser-de Bruijn.
Σύνολα Χωρίς Άθροισμα - Wikipedia. Ιστορικό του ευρύτερου μαθηματικού πλαισίου της προσθετικής θεωρίας αριθμών.
Προσθετικές Βάσεις - Wikipedia. Επισκόπηση συνόλων που μπορούν να αναπαραστήσουν ακεραίους ως αθροίσματα.
Η ακολουθία έχει διάφορες εφαρμογές: έρευνα στη θεωρία αριθμών που διερευνά προσθετικές βάσεις, εργασίες στον συνδυαστικό λογισμό σχετικά με σύνολα χωρίς άθροισμα, εκπαίδευση στην επιστήμη των υπολογιστών (ιδιαίτερα για τη διδασκαλία bitwise πράξεων και αποδοτικών αλγορίθμων) και ανάλυση μαθηματικών προτύπων. Είναι επίσης ένα εξαιρετικό εκπαιδευτικό εργαλείο για την κατανόηση του τρόπου σχέσης διαφορετικών αριθμητικών βάσεων μεταξύ τους.
Πάρτε κάθε δείκτη n ξεκινώντας από το 0, μετατρέψτε τον σε δυαδικό, και στη συνέχεια αντικαταστήστε κάθε bit "1" με την αντίστοιχη δύναμη του 4. Για παράδειγμα, ο δείκτης 5 έχει δυαδική αναπαράσταση 101, οπότε υπολογίζετε 4² + 4⁰ = 16 + 1 = 17. Αυτός είναι ο 5ος όρος (μετρώντας από το δείκτη 0).
Κάθε αριθμός στην ακολουθία έχει ένα διακριτικό χαρακτηριστικό: η αναπαράστασή του στη βάση 4 περιέχει μόνο 0 και 1 - ποτέ 2 ή 3. Αυτό σημαίνει ότι μπορείτε να κατασκευάσετε κάθε όρο προσθέτοντας δυνάμεις του 4 όπου κάθε δύναμη εμφανίζεται το πολύ μία φορά. Είναι σαν το δυαδικό, αλλά χρησιμοποιώντας δυνάμεις του 4 αντί δυνάμεων του 2.
Μετατρέψτε τον αριθμό σας σε βάση 4 και κοιτάξτε τα ψηφία. Αν δείτε μόνο 0 και 1, είναι στην ακολουθία. Αν οποιοδήποτε ψηφίο είναι 2 ή 3, δεν είναι. Για παράδειγμα, το 21 σε βάση 4 είναι 111 (όλα 1 και 0), οπότε είναι μέσα. Αλλά το 22 σε βάση 4 είναι 112 (περιέχει 2), οπότε δεν είναι.
Ο n-οστός όρος M(n) ακολουθεί αυτόν τον τύπο: M(n) = Σ(b_i × 4^i), όπου b_i αντιπροσωπεύει τα δυαδικά ψηφία του n. Με απλά λόγια: γράψτε το n σε δυαδική μορφή, και στη συνέχεια για κάθε θέση με 1, προσθέστε την αντίστοιχη δύναμη του 4.
Ναι, συνεχίζεται για πάντα. Υπάρχουν άπειροι όροι στην ακολουθία Moser-de Bruijn. Ωστόσο, όσο προχωράτε πιο ψηλά, η ακολουθία γίνεται όλο και πιο αραιή - παραλείπετε όλο και περισσότερους κανονικούς ακεραίους μεταξύ των μελών της ακολουθίας.
Οι δυαδικές ακολουθίες (αθροίσματα δυνάμεων του 2) μπορούν να αναπαραστήσουν κάθε μη αρνητικό ακέραιο - αυτό κάνει η δυαδική αναπαράσταση. Η ακολουθία Moser-de Bruijn χρησιμοποιεί δυνάμεις του 4 αντί αυτού, το οποίο δημιουργεί ένα πολύ πιο αραιό σύνολο. Οι περισσότεροι ακέραιοι δεν εμφανίζονται στην ακολουθία Moser-de Bruijn.
Ο Leo Moser (1921-1970), ένας Αυστριακο-Καναδός μαθηματικός, και ο Nicolaas Govert de Bruijn (1918-2012), ένας Ολλανδός μαθηματικός, μελέτησαν αυτή την ακολουθία σε βάθος κατά τη δεκαετία του 1960 ως μέρος της έρευνάς τους στην προσθετική θεωρία αριθμών. Η ακολουθία φέρει και τα δύο ονόματά τους.
Αυτός ο γεννήτορας λειτουργεί πλήρως στο πρόγραμμα περιήγησής σας - καμία εγκατάσταση, καμία εγγραφή, καμία αναμονή. Είτε είστε φοιτητής που μαθαίνει για αριθμητικά συστήματα, ερευνητής που εξερευνά προσθετικές βάσεις, ή απλώς μαθηματικά περίεργος, μπορείτε να δημιουργήσετε όρους άμεσα και να δείτε τα μοτίβα μόνοι σας. Δοκιμάστε να δημιουργήσετε διαφορετικές ποσότητες για να παρατηρήσετε πώς αναπτύσσεται η ακολουθία και ποιοι ακέραιοι συμπεριλαμβάνονται.
Ανακαλύψτε περισσότερα εργαλεία που μπορεί να είναι χρήσιμα για τη ροή εργασίας σας