Beitrag Ansicht

Neue Version Quadratdifferenzen Quadratzahlreihe

 

Weiterentwickelt. Jetzt kann das Programm die Analyse immerhin fortsetzen, sodass beim ersten Abbruch, wenn die Zahl geteilt durch 4 größer wird als q, der Abstand zu den q-Werten und der y Wert ablesbar wird, dann sucht das Programm nach unten nach passenden Quadraten, wird mitunter falsch fündig, was aber egal ist, und sucht dann auf EIngabe hin weiter, diesmal richtig. Allerdings nur mit kleinen Zahlen.
gesucht und annähernd gefunden habe ich, dass die Differenz zu den 'nächsthöheren' Quadraten in der q-Reihe annähernd den nächsten y-Wert für höhere Quadratdifferenzen also weitere Teiler oder erste Teiler bildet. Dabei gibt es eine Unschärfe von plus minus 12, und mal ist es die Differenz selbst , mal der y-Wert bei dem ersten Abbruch, häufig auch deren Dreifaches oder der Mittelwert beider Dreifachen plus minus ca 10 (y-Wert). So z.B. auch bei der Zahl 111 155 899, 111155899 = 1723 * 64513, für die das Programm in der ursprünglichen Fassung immerhin lieb y,q, und quadratwerte auflistete bei y = 5272 Abbruch, richtigere Quadratdifferenz dann bei y = 15697 für das untere Quadrat 31395^2 (+ 111 155 899 = 33118^2 und Faktoren entsprechend mit 3.BF 1723 * 64513. y für das obere quadrat 16559.
Der angesprochene S-Wert bei der ersten Programmpause liegt bei 10282, da q2 in der richtigen Differenz das höhere Quadrat ist, plus y = 15554, und 3 x 5272 = 15816, Mittelwert dann 15685, also nur 12 natürliche zahlen vom richtigen Wert entfernt.

Das Programm dient nur dazu, an kleinen Zahlen auszuprobieren, was ich dann (qausi) *mit Bleistift und Papier* ausrechnen kann, bei beliebig großen Zahlen.

Entsprechend werde ich das Programm im nächsten SChritt so umschreiben, dass es systematisch mit den beschriebenen Sprüngen (Differenz S in der q-Reihe, Vielfache der Differenz S und des y bei S usw) prüft, ob richtige Ergebnisse entstehen, um zu testen, ob es bei hinreichend vielen Zahlen funktioniert und wie sich die beschriebenen 'Unschärfen' systematisieren lassen.

 

ints und includes selbst ergänzen bitte

y=1;

q1=0;

q2=0;

x=0;

S=0;

 

std::cout << "  z  \n";

std::cin >> z;

 

while (y<100000){

z1=z/4;

q2=q1+y;

qq2=q2*4;

q1=q2+y;

qq1=q1*4+1;

 

if(z1>q1){

std::cout << " y  "<<y<<"  q2  " <<q2<< "  qq2  " <<qq2<<"\n";

std::cout <<  " y  "<<y<<"  q1  " <<q1<< "  qq1  " <<qq1<<"\n";

y++;}

 

if(z1<q1){

std::cout << " y  "<<y<<"  q2  " <<q2<< "  qq2  " <<qq2<<"\n ";

std::cout <<  " y  "<<y<<"  q1  " <<q1<< "  qq1  " <<qq1<<"\n  \n";

std::cout << "  und q1>z1, q1 =  " <<q1<< " >  " <<z1<<" z1  bei y = "<< y  <<"\n  \n ";

 

std::cout << "   QuadU für q1 berechnen  \n  ";

std::cout << " y  "<<y<<"  q2  " <<q2<< "  qq2  " <<qq2<<"\n";

std::cout <<  " y  "<<y<<"  q1  " <<q1<< "  qq1  " <<qq1<<"\n";

std::cout << "  und q1>z1, q1 =  " <<q1<< " >  " <<z1<<" z1  bei y = "<< y  <<"\n";

yqo=y;

QuadO=qq1;

S=q1-z1;

std::cout << "  S (q1 minus z1) =  " <

std::cout << "  QuadO =  " <

 

 

 

//break;

//}

//}//}

 

//std::cout << "  Z eingeben  \n";

//std::cin >> z;

//std::cout << "  S eingeben  \n";

//std::cin >> S;

//std::cout << "  QuadO eingeben  \n";

//std::cin >> QuadO;

 

 

q1=0;

q2=0;

y=1;

S1=S+1;

 

while(q1<S1)

{

q2=q1+y;

q1=q2+y;

qq1=q1*4+1;

qq2=q2*4;

 

 

//std::cout << " y  "<<y<<"  q2  " <<q2<< "  qq2  " <<qq2<<"\n";

//std::cout <<  " y  "<<y<<"  q1  " <<q1<< "  qq1  " <<qq1<<"\n";

 

if(q1==S)

{

QuadU1=qq1;

std::cout << "  q1  " << q1 <<" = " << S<< " bei y   "<<y<<   "\n \n";

std::cout << "  z =  " << z<<" = " <<QuadO-QuadU1<<"   QuadO "<<QuadO<<"  -  QuadU1   "<<QuadU1<< "  bei y "<<y<<"\n";

std::cout << "  z =  " << z<<" = "  <<"   QuadO  "<<2*yqo<<"^2   -  QuadU1   "<<2*y+1<< "^2  bei y "<<y<<"\n";

std::cout << "  z =  " << z<<" = "  <<"  oder QuadO  "<<2*yqo+1<<"^2   -  QuadU1   "<<2*y+1<< "^2  bei y "<<y<<"\n";

std::cout << "  z =  " << z<<" = " <<2*yqo +2*y+1<<"  *    "<<2*yqo-2*y-1<< "??\n";

std::cout << "  z =  " << z<<" = " <<2*yqo +2*y+2<<"  *    "<<2*yqo-2*y<< "??\n";

 

}

 

if(q2==S)

{

QuadU2=qq2;

std::cout << "  oder S =  " << S <<" q2 = " <<q2<< "   bei y   "<<y<<"   \n";

std::cout << "  z =  " << z<<" = " <<QuadO-QuadU2<<"   QuadO   "<<QuadO<<"  -  QuadU2   "<<QuadU2<<"\n \n";

std::cout << "  z =  " << z<<" = " <<2*yqo+1<<"^2 = QuadO "<<QuadO<<"  -  QuadU2   "<<2*y<< "^2  bei y "<<y<<"\n";

std::cout << "  z =  " << z<<" = " <<2*yqo+1+2*y<<"  *    "<<2*yqo+1-2*y<< " ?? \n\n";

}

y++;

continue;

}

 

std::cout << "  Weitere Quaddiffs suchen, Zahl neu eingeben   \n";

std::cin >> z;

 

 

q1=0;

q2=0;

y=1;

 

 

{

while(y<z){

{

z1=z/4;

 

q2=q1+y;

q1=q2+y;

Sq1=q1-z1;

Sq2=q2-z1;

qq1=q1*4+1;

qq2=q2*4;

yqo=y;

y++;

//std::cout << " y  "<<y<<"  q2  " <<q2<< "  qq2  " <<qq2<<"  qq2-z  " <<qq2-z<<"\n";

//std::cout <<  " y  "<<y<<"  q1  " <<q1<< "  qq1  " <<qq1<<"  qq1-z  " <<qq1-z<<"\n";

 

bingo2=qq2-z;

bingo1=qq1-z;

for(n=1;n<1000;n++)

{

bingo1q=n*n;

bingo2q=n*n;

 

 

if(bingo1==bingo1q)

{

std::cout << " \n Bingo: y    "<<y<< "    qq1-z   " << bingo1 <<" = " <<n<<"^2 für qq1  "<<qq1<<"   =   "<< 2*yqo+1 <<"^2   \n \n";

 

}

 

 

if(bingo2q==bingo2)

{

std::cout << " \n Bingo:  y    "<<y<< "    qq2-z   " << bingo2 <<" = " <<n<<"^2 für qq2  "<<qq2<<"   =   "<< 2*yqo <<"^2   \n \n";

 

}else

 continue;

}}}

}

break;}}}

 

ZifferZahlZitat 16.01.2019 0 156
Kommentare
Ordnen nach: 
Pro Seite:
 
  • _There are no comments yet
Rate
1 Abstimmungen
Aktionen
Empfehlen
Kategorien
Books (14 beiträge)
Entertainment Blogs (28 beiträge)
Tech News (1 beiträge)