Ulam-Folge

Van Wikipedia, de gratis encyclopedie

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 | Quelltext 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 | Quelltext 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 | Quelltext bearbeiten]