Puzzel Puzzels
efdee
Artikelen: 0
Berichten: 697
Lid geworden op: za 28 mei 2016, 16:22

Vier kwadraten

Lagrange: elk natuurlijk getal kan geschreven worden als de som van vier kwadraten. (of soms minder termen. 0^2 mag.)
Bestaat er een algoritme om die vier kwadraten te vinden? Zo ja, hoe werkt die?

ads

Steun Sciencetalk Logitech M185 - Draadloze Muis - Grijs

Logitech M185 - Draadloze Muis - Grijs

Bekijk product

Steun Sciencetalk bol cadeaukaart - 5 euro - Bedankt!

bol cadeaukaart - 5 euro - Bedankt!

Bekijk product

Steun Sciencetalk HP 305 - Inkcartridge - Origineel - Standaard capaciteit - Kleur en Zwart

HP 305 - Inkcartridge - Origineel - Standaard capaciteit - Kleur en Zwart

Bekijk product

Gebruikersavatar
Math-E-Mad-X
Artikelen: 0
Berichten: 2.906
Lid geworden op: wo 13 sep 2006, 17:31

Re: Vier kwadraten

Gewoon: alle mogelijkheden één voor één uitproberen tot je het juiste viertal gevonden hebt.

Dit waarschijnlijk niet het beste of meest efficiënte algoritme, maar het is in elk geval duidelijk dat dit algoritme bestaat.
Scispace Scispace

Scispace is dé ai voor wetenschappers en onderzoekers. Ga naar SciSpace en profiteer van één van de beste ai's.

Scispace

Gebruikersavatar
Math-E-Mad-X
Artikelen: 0
Berichten: 2.906
Lid geworden op: wo 13 sep 2006, 17:31

Re: Vier kwadraten

Hier heb je een voorbeeld in Java:

Code: Selecteer alles

static int[] run(int valueToTest) {

    for(int i=0; i<Double.POSITIVE_INFINITY; i++) {
        for(int j=0; j<=i; j++) {
            for(int k=0; k<=j; k++) {
                for(int l=0; l<=k; l++) {
	  	    if(i*i + j*j + k*k + l*l == valueToTest) {
	     	        return new int[] {i,j,k,l};
	           }
                }
	    }
	}
    }
    return null; /*this can never happen.*/
}
Gebruikersavatar
tempelier
Artikelen: 0
Berichten: 4.511
Lid geworden op: zo 08 jan 2012, 00:59

Re: Vier kwadraten

Ik weet weinig tot van Java.
Maar het zoeken van een reeks kan gestopt worden als de wortel uit G wordt overschreden.
Dan wordt het algoritme eindig en vindt men ook alle mogelijkheden.

Een formule om ze te vinden lijkt niet nog niet gevonden,
wel een formule om het aantal mogelijkheden te bepalen.

https://de.wikipedia.org/wiki/Vier-Quadrate-Satz

ads

Steun Sciencetalk bol cadeaukaart - 75 euro - Bedankt!

bol cadeaukaart - 75 euro - Bedankt!

Bekijk product

Steun Sciencetalk HP Sprocket - Zelfklevend fotopapier - 5 x 7,6 cm - 50 vel

HP Sprocket - Zelfklevend fotopapier - 5 x 7,6 cm - 50 vel

Bekijk product

Steun Sciencetalk Logitech M705 - Draadloze Marathon Muis - USB - Rechtshandig - Grijs

Logitech M705 - Draadloze Marathon Muis - USB - Rechtshandig - Grijs

Bekijk product

Gebruikersavatar
RedCat
Artikelen: 0
Berichten: 729
Lid geworden op: zo 21 jul 2019, 16:38

Re: Vier kwadraten

Mogelijk heb je hier genoeg aan (= mogelijk is dit voldoende efficient):

Code: Selecteer alles

Lagrange(n)
  for(i=floor(sqrt(n)); i>=floor(sqrt(n/4)); i--)
    m=n-i^2
    for(j=floor(sqrt(m)); j>=floor(sqrt(m/3)); j--)
      t=m-j^2
      for(k=floor(sqrt(t)); k>=floor(sqrt(t/2)); k--)
        if(issquare(t-k^2))
          return/print (i, j, k, sqrt(t-k^2))
Het is een combinatie van Math-E-Mad-X en tempelier, met daaraan toegevoegd:
- als i ≥ j ≥ k ≥ l, dan hebben elk ook een ondergrens waar we boven kunnen blijven
- de laatste variabele hoef je alleen te testen op al dan niet kwadraat zijn
- begin het zoeken steeds bij de grootste waarde, dan heb sneller succes

Mocht je aan 1 oplossing per n voldoende hebben, dan kan je vooraf eerst kwadraten uit n delen:
als n = k^2 * m
en m = a^2 + b^2 + c^2 + d^2
dan is
n = k^2 * m = k^2 * (a^2 + b^2 + c^2 + d^2) = (ka)^2 + (kb)^2 + (kc)^2 + (kd)^2

Plaats een reactie

Je mail wordt niet openbaar getoond. Het wordt enkel gebruik voor contact of notificatie vanuit het beheer.

🗨️ Wat vind jij? Stel direct je vraag of geef je mening – zonder registratie. Je reactie zet het topic weer bovenaan bij 'Laatste posts' en trekt snel nieuwe reacties aan🔥. Mocht je als vaste bezoeker willen reageren, dan kun je je ook registreren.

Bevestig dat je geen robot bent door de volgende vragen te beantwoorden.

Noor heeft 10 knikkers. Ze verliest er 4 in het gras. Hoeveel heeft ze er nog?

Antwoord: (vul een getal in)

Er zitten 5 vogels op een hek. Twee vliegen weg. Hoeveel blijven er zitten?

Antwoord: (vul een getal in)

Terug naar “(Lineaire) Algebra en Meetkunde”

Sciencetalk: Leer, deel of groei. Volg of geef een cursus op Sciencetalk!