Als (u,v)-Ulam-Folge wird eine von dem polnischen Mathematiker Stanisław Marcin Ulam definierte Zahlenfolge bezeichnet. Dabei sind u und v natürliche Zahlen. Die Folge ist definiert durch:
- ist die kleinste natürliche Zahl, die größer als ist und sich eindeutig als Summe zweier Zahlen aus darstellen lässt.
Beispiel: Die (1,2)-Ulam-Folge hat die Glieder
.
5 gehört nicht zur Folge, da 5 = 2+3 = 4+1 sich nicht eindeutig darstellen lässt. Die weiteren Folgeglieder sind
.
Die Glieder einer Ulam-Folge werden auch als (u,v)-Ulam-Zahlen bezeichnet.
Realisierung der (1,2)-Ulam-Folge in C++
Bearbeiten#include <iostream>
#define N 100 // beliebige Obergrenze der Folge
using namespace std;
int main(){
int ulam[N]={}; // Ulamfolge als Array
ulam[0] = 1; // Deklaration des 1.
ulam[1] = 2; // und 2. Elements
for(int i=2; i< N; i++){
int x = ulam[i-1]; // potentiell nächsthöherer Listeneintrag
int c; // Zähler der möglichen Kombinationen
do {
c = 0;
x++;
// Durchexerzieren aller möglichen
// Kombinationen bisherigen Listenelemente
for(int k=0; k<i; k++){
for(int n=0; n<k; n++){
// Zähler Inkrementation bei Gültiger Kombination:
if(ulam[n] + ulam[k] == x){
c++;
}
}
}
} while(c!=1); // Abbruchbedingung für den Fall einer einzigen(!)
// möglichen Kombination
ulam[i] = x; // Zuweisen des Wertes mit gültiger kombination
cout << x << endl; // Ausgabe
}
return 0;
}
Auf diese Art lässt sich jede beliebige Ulam-Folge (u,v) realisieren, indem man im Code
ulam[0] = u;
ulam[1] = v;
einsetzt.
Literatur
Bearbeiten- Richard Guy: Unsolved Problems in Number Theory. 3. Aufl. Springer, New York u. a. 2004, ISBN 0-387-20860-7. S. 166–167
Weblinks
Bearbeiten- Eric W. Weisstein: Ulam Sequence. In: MathWorld (englisch).
- (1,2)-Ulam-Folge A002858 in OEIS