Pari kysymystä neliöluvuista

1. Voiko kahdesta neliöluvusta koostuvan luvun jakaa kahteen muuhun neliölukuun.
Esim. 4^2 5^2=41 Eli a^2 b^2=41 toteutuisi myös jollain toisilla kokonaisluvuilla a ja b ?

2. Koostuuko jokainen kahdesta neliöluvusta saatu luku kerrottuna kahdella, kahdesta neliöluvusta?
Esim. 4^2 6^2=52 Eli 52 on kahdesta neliöluvusta saatu luku. 52 kertaa 2 on 104.
Myös 104 kostuu kahdesta neliöluvusta: 2^2 10^2=104
Toimiiko tämä joka kerta ja onko suht simppeliä todistusta?
26450
Äänestä

Muut lukivat myös

Vastaukset 26

Vanhimmat

3^2 4^2 = 0^2 5^2 = 25

Äänestä
  • WAU! Nerokasta. Nolla tosin ei ole neliöluku.

    Äänestä

Kokonaisluvut voivat olla myös negatiivisia (ja nolla), joten homma onnistuu noilla aina.

Luultavasti tarkoitit posiitivisia kokonaislukua. Niihin ei kuulu myöskään nolla.

Lukuja löytyy muutaman rivin Python ohjelmalla rajattomasti:

50 = 1^2 7^2 = 5^2 5^2
65 = 1^2 8^2 = 4^2 7^2
85 = 2^2 9^2 = 6^2 7^2
125 =
130 =
145 =
170 =
185 =
200 =

Äänestä
  • Jep , kiitos.

    Äänestä

2. Ei varmasti. Poikkeuksia ovat 2, 8, 18, 32, 72, 98, 128, 162, ...

Huomaatko mitä yhteistä noilla kaikilla luvuilla on?

Äänestä
  • Kiitosta! Orastavasti näen myös yhteyden. En edes yritä muodostaa sitä kirjoitettuna. Menee vielä loppupäivä että sen saa jäsenneltyä omaan päähän :D

    Äänestä

  • Anonyymi kirjoitti:

    Kiitosta! Orastavasti näen myös yhteyden. En edes yritä muodostaa sitä kirjoitettuna. Menee vielä loppupäivä että sen saa jäsenneltyä omaan päähän :D

    Yritän nyt kuitenkin :) Kerrotaan kahden neliöluvun summa kahdella ja saadaan X.

    X voidaan myös muodostaa kahden muun neliön summana paitsi jos a^2 b^2 a ja b ovat sama. Poikkeuksena tähän esim. 50 jossa a ja b ovat 5, muuta myöskin a=1 ja b=7

    Äänestä

  • Kahden saman luvun neliösummia.

    Äänestä

Täällä on kaava sille kuinka monella tavalla luvun voi esittää kahden neliön summana (kaava 17)

https://mathworld.wolfram.com/SumofSquaresFunction.html

Siinä kyllä hyväksytään nollakin mukaan esitykseen ja niin se kannattaa tehdäkin. Ehkä ne nollalliset voi erotella sitten jotenkin... lukuhan on silloin itse neliö ja esityksen on oltava Pythagoraan kolmikko.

Äänestä
  • Ok. Kiitos

    Äänestä

Ensimmäiset kolmoset:

(3, 1105, 81, 1024, 9, 32)
(3, 1105, 144, 961, 12, 31)
(3, 1105, 529, 576, 23, 24)
(3, 1625, 256, 1369, 16, 37)
(3, 1625, 400, 1225, 20, 35)
(3, 1625, 784, 841, 28, 29)
(3, 1885, 121, 1764, 11, 42)
(3, 1885, 441, 1444, 21, 38)
(3, 1885, 729, 1156, 27, 34)
(3, 2125, 100, 2025, 10, 45)
(3, 2125, 361, 1764, 19, 42)
(3, 2125, 900, 1225, 30, 35)

Ja ekat neloset, jotka ovat myös ekat vitoset:

(5, 5525, 196, 5329, 14, 73)
(5, 5525, 484, 5041, 22, 71)
(5, 5525, 625, 4900, 25, 70)
(5, 5525, 1681, 3844, 41, 62)
(5, 5525, 2500, 3025, 50, 55)

Luku 801125 voidaan esittää 15:llä eri tavalla.
Luku 5928325 voidaan esittää 20:llä eri tavalla.
Luku 29641625 voidaan esittä 31:llä eri tavalla.

Mikä on pienin luku, joka voidaan esittää sadalla (tai yli) eri tavalla?

Äänestä
  • Kiitos.

    Äänestä

  • Ekat kolmoset ovatkin pykälää pienempiä:

    (3, 325, 1, 324, 1, 18)
    (3, 325, 36, 289, 6, 17)
    (3, 325, 100, 225, 10, 15)
    (3, 425, 25, 400, 5, 20)
    (3, 425, 64, 361, 8, 19)
    (3, 425, 169, 256, 13, 16)
    (3, 650, 25, 625, 5, 25)
    (3, 650, 121, 529, 11, 23)
    (3, 650, 289, 361, 17, 19)
    (3, 725, 49, 676, 7, 26)
    (3, 725, 100, 625, 10, 25)
    (3, 725, 196, 529, 14, 23)

    Ja ekat neloset vastaavasti:

    (4, 1105, 16, 1089, 4, 33)
    (4, 1105, 81, 1024, 9, 32)
    (3, 1105, 144, 961, 12, 31)
    (4, 1105, 529, 576, 23, 24)

    Ja ekat vitoset ovat myös kutoset:

    (6, 5525, 49, 5476, 7, 74)
    (6, 5525, 196, 5329, 14, 73)
    (6, 5525, 484, 5041, 22, 71)
    (6, 5525, 625, 4900, 25, 70)
    (6, 5525, 1681, 3844, 41, 62)
    (6, 5525, 2500, 3025, 50, 55)

    Luku 3159797225 voidaan esittää 72:llä eri tavalla.

    Äänestä

  • Luku 53716552825 voidaan esittää 108:lla eri tavalla. On eka satanen tai yli.

    m = [[1240,231765],[5109,231712],[5668,231699],[7085,231660],
    [7860,231635],[8619,231608],[10285,231540],[13428,231379],
    [14960,231285],[16932,231149],[20032,230901],[20124,230893],
    [20589,230852],[23528,230571],[25248,230389],[25941,230312],
    [27659,230112],[29835,229840],[30588,229741],[32240,229515],
    [34221,229228],[34963,229116],[39584,228363],[41973,227936],
    [42432,227851],[43940,227565],[45331,227292],[45576,227243],
    [46965,226960],[48467,226644],[50157,226276],[51540,225965],
    [52085,225840],[55848,224939],[56576,224757],[58515,224260],
    [60860,223635],[63891,222788],[64636,222573],[65365,222360],
    [66963,221884],[69784,221013],[70229,220872],[70317,220844],
    [76340,218835],[77677,218364],[79560,217685],[81124,217107],
    [81835,216840],[82560,216565],[83883,216056],[84404,215853],
    [85493,215424],[87744,214517],[88747,214104],[90285,213460],
    [90984,213163],[93836,211923],[94347,211696],[95640,211115],
    [97036,210477],[98604,209747],[99885,209140],[101387,208416],
    [102765,207740],[104533,206856],[107381,205392],[110160,203915],
    [111508,203181],[111917,202956],[114036,201773],[115940,200685],
    [116597,200304],[118035,199460],[122040,197035],[122515,196740],
    [123716,195987],[124371,195572],[126412,194259],[126803,194004],
    [128085,193160],[129264,192373],[130696,191403],[132693,190024],
    [133328,189579],[134485,188760],[134940,188435],[138067,186156],
    [138669,185708],[140051,184668],[142392,182869],[144299,181368],
    [144664,181077],[145269,180592],[145860,180115],[147152,179061],
    [149421,177172],[149848,176811],[150739,176052],[152235,174760],
    [153389,173748],[154635,172640],[155688,171691],[157165,170340],
    [158940,168685],[161772,165971],[162315,165440],[163501,164268]]

    n = 53716552825
    for a,b in m:
    __if a**2 b**2 != n: print("error",a,b)
    print(len(m))

    Mikä luku voidaan esittää yli 108:lla tavalla? Helppo löytää, mutta montako tapaa?

    Äänestä

  • "Mikä+on+pienin+luku,+joka+voidaan+esittää+sadalla+(tai+yli)+eri+tavalla?"Minä+sain+n+=+64411251125,+jonka+alkulukuesitys+on+5^3+*+13+*+17+*+29+*+37+*+41+*+53.Käytin+tällaista+Sage-koodia:minWays+=+100primes+=+[nth_prime(j)+for+j+in+range(1,+20)]primes1+=+[p+for+p+in+primes+if+p%4==1]print+("Primes+to+use:")print+(primes1)#don't+need+to+try+so+big+exponents+for+larger+primeseUptos+=+[7,3]+++[2]*(len(primes1)-2)smallestN+=+float('inf')for+expos+in+cartesian_product([range(j)+for+j+in+eUptos]):....B+=+product((1+a)+for+a+in+expos)....if+B//2+<+minWays:+continue....n+=+product(primes1[j]**a+for+j,a+in+enumerate(expos))....if+n<smallestN:+smallestN+=+nprint+("Found+smallest+that+has+at+least+{}+ways".format(minWays))print+(smallestN)print+(factor(smallestN))

    Äänestä

  • Anonyymi kirjoitti:

    Luku 53716552825 voidaan esittää 108:lla eri tavalla. On eka satanen tai yli.

    m = [[1240,231765],[5109,231712],[5668,231699],[7085,231660],
    [7860,231635],[8619,231608],[10285,231540],[13428,231379],
    [14960,231285],[16932,231149],[20032,230901],[20124,230893],
    [20589,230852],[23528,230571],[25248,230389],[25941,230312],
    [27659,230112],[29835,229840],[30588,229741],[32240,229515],
    [34221,229228],[34963,229116],[39584,228363],[41973,227936],
    [42432,227851],[43940,227565],[45331,227292],[45576,227243],
    [46965,226960],[48467,226644],[50157,226276],[51540,225965],
    [52085,225840],[55848,224939],[56576,224757],[58515,224260],
    [60860,223635],[63891,222788],[64636,222573],[65365,222360],
    [66963,221884],[69784,221013],[70229,220872],[70317,220844],
    [76340,218835],[77677,218364],[79560,217685],[81124,217107],
    [81835,216840],[82560,216565],[83883,216056],[84404,215853],
    [85493,215424],[87744,214517],[88747,214104],[90285,213460],
    [90984,213163],[93836,211923],[94347,211696],[95640,211115],
    [97036,210477],[98604,209747],[99885,209140],[101387,208416],
    [102765,207740],[104533,206856],[107381,205392],[110160,203915],
    [111508,203181],[111917,202956],[114036,201773],[115940,200685],
    [116597,200304],[118035,199460],[122040,197035],[122515,196740],
    [123716,195987],[124371,195572],[126412,194259],[126803,194004],
    [128085,193160],[129264,192373],[130696,191403],[132693,190024],
    [133328,189579],[134485,188760],[134940,188435],[138067,186156],
    [138669,185708],[140051,184668],[142392,182869],[144299,181368],
    [144664,181077],[145269,180592],[145860,180115],[147152,179061],
    [149421,177172],[149848,176811],[150739,176052],[152235,174760],
    [153389,173748],[154635,172640],[155688,171691],[157165,170340],
    [158940,168685],[161772,165971],[162315,165440],[163501,164268]]

    n = 53716552825
    for a,b in m:
    __if a**2 b**2 != n: print("error",a,b)
    print(len(m))

    Mikä luku voidaan esittää yli 108:lla tavalla? Helppo löytää, mutta montako tapaa?

    Joo, 53716552825 on. Minulla tuli sellainen virhe koodiini, että testattava eksponentti ei saanutkaan olla kakkosta. Pitää lisätä ykkönen rivillä

    for expos in cartesian_product([range(j 1) for j in eUptos]):

    Minäkin olen tässä koitellut saada niitä esityksiä. Sagessa on funktio sum_of_k_squares(), esim:

    sum_of_k_squares(2, 5**2 * 13)
    #(2, 3)

    Mutta se antaa vain yhden esityksen. Kaavaa

    (a^2 b^2) (c^2 d^2)
    = (ac bd)^2 (ad-bc)^2
    = (bc ad)^2 (ac-bd)^2

    pitäisi sitten varmaan käyttää sen eri muotoa eri alkutekijöille, niin saadaan erilaisia esityksiä. Esityksiä pitäisi tulla yhtä monta kuin tekijöitäkin (tai jaettuna kahdella, kun järjestyksellä ei väliä). Hmmm...
    Ehkäpä pitäisi tutkia n:n hajotelmaa Gaussin kokonaisluvuissa. Minulla on tällainen aihio nyt:

    G = GaussianIntegers()
    d = G(53716552825)
    print (d.factor())
    # (-I) * (I - 6) * (-5*I - 4) * (I - 4)^2 * (-3*I - 2)^2 * (-I - 2)^2 * (2*I 1)^2 * (2*I 3)^2 * (I 4)^2 * (-2*I 5) * (2*I 5) * (4*I 5) * (I 6)

    Tuossa sitten eri esitykset saataisiin, kun jaetaan tuo tulo kahteen osaan siten, että konjugaatit laitetaan eri osiin (jolloin tulosta tulee muotoa A^2 B^2 eli eräs n:n esitys).

    Äänestä

  • minkkilaukku kirjoitti:

    Joo, 53716552825 on. Minulla tuli sellainen virhe koodiini, että testattava eksponentti ei saanutkaan olla kakkosta. Pitää lisätä ykkönen rivillä

    for expos in cartesian_product([range(j 1) for j in eUptos]):

    Minäkin olen tässä koitellut saada niitä esityksiä. Sagessa on funktio sum_of_k_squares(), esim:

    sum_of_k_squares(2, 5**2 * 13)
    #(2, 3)

    Mutta se antaa vain yhden esityksen. Kaavaa

    (a^2 b^2) (c^2 d^2)
    = (ac bd)^2 (ad-bc)^2
    = (bc ad)^2 (ac-bd)^2

    pitäisi sitten varmaan käyttää sen eri muotoa eri alkutekijöille, niin saadaan erilaisia esityksiä. Esityksiä pitäisi tulla yhtä monta kuin tekijöitäkin (tai jaettuna kahdella, kun järjestyksellä ei väliä). Hmmm...
    Ehkäpä pitäisi tutkia n:n hajotelmaa Gaussin kokonaisluvuissa. Minulla on tällainen aihio nyt:

    G = GaussianIntegers()
    d = G(53716552825)
    print (d.factor())
    # (-I) * (I - 6) * (-5*I - 4) * (I - 4)^2 * (-3*I - 2)^2 * (-I - 2)^2 * (2*I 1)^2 * (2*I 3)^2 * (I 4)^2 * (-2*I 5) * (2*I 5) * (4*I 5) * (I 6)

    Tuossa sitten eri esitykset saataisiin, kun jaetaan tuo tulo kahteen osaan siten, että konjugaatit laitetaan eri osiin (jolloin tulosta tulee muotoa A^2 B^2 eli eräs n:n esitys).

    Helvetti ku se antaa ne tuossa muodossa, eihän tuosta nää heti mikä on minkäkin konjugaatti, kun ne voi olla -1:llä, i:llä tai -i:llä kerrottuna.

    Äänestä

  • minkkilaukku kirjoitti:

    Helvetti ku se antaa ne tuossa muodossa, eihän tuosta nää heti mikä on minkäkin konjugaatti, kun ne voi olla -1:llä, i:llä tai -i:llä kerrottuna.

    No nyt keksin: https://repl.it/repls/ColdPunctualCustomer
    Täällä voi suorittaa: https://sagecell.sagemath.org/

    Mutta tuo taitaa olla suurille n liian hidas. Siinä on se vanha tapakin, jota aluksi yritin, jossa ei käydä kaikkia jakajia läpi vaan otetaan aluksi "konjugaatit erilleen". Siinä pitäisi sitten käydä läpi tavat jakaa eri termeihin...

    Äänestä

  • minkkilaukku kirjoitti:

    "Mikä+on+pienin+luku,+joka+voidaan+esittää+sadalla+(tai+yli)+eri+tavalla?"Minä+sain+n+=+64411251125,+jonka+alkulukuesitys+on+5^3+*+13+*+17+*+29+*+37+*+41+*+53.Käytin+tällaista+Sage-koodia:minWays+=+100primes+=+[nth_prime(j)+for+j+in+range(1,+20)]primes1+=+[p+for+p+in+primes+if+p%4==1]print+("Primes+to+use:")print+(primes1)#don't+need+to+try+so+big+exponents+for+larger+primeseUptos+=+[7,3]+++[2]*(len(primes1)-2)smallestN+=+float('inf')for+expos+in+cartesian_product([range(j)+for+j+in+eUptos]):....B+=+product((1+a)+for+a+in+expos)....if+B//2+<+minWays:+continue....n+=+product(primes1[j]**a+for+j,a+in+enumerate(expos))....if+n<smallestN:+smallestN+=+nprint+("Found+smallest+that+has+at+least+{}+ways".format(minWays))print+(smallestN)print+(factor(smallestN))

    Vastasitkin kysymykseen:
    "Mikä luku voidaan esittää yli 108:lla tavalla? Helppo löytää, mutta montako tapaa?"

    ihan oikein eli tuo luku esittämäsi 64411251125 ja tapojen määrä on 128.

    Ja seuraava luku on 167469252925 ja määrä on 144. Tuota on helppo jatkaa.

    Sadas luku on 2014974700940990813374532004655625. Määrää en ole viitsinyt laskea.Mikäs on 400. luku? Montako numero siinä on?

    Äänestä

  • Anonyymi kirjoitti:

    Vastasitkin kysymykseen:
    "Mikä luku voidaan esittää yli 108:lla tavalla? Helppo löytää, mutta montako tapaa?"

    ihan oikein eli tuo luku esittämäsi 64411251125 ja tapojen määrä on 128.

    Ja seuraava luku on 167469252925 ja määrä on 144. Tuota on helppo jatkaa.

    Sadas luku on 2014974700940990813374532004655625. Määrää en ole viitsinyt laskea.Mikäs on 400. luku? Montako numero siinä on?

    Uusi koodi: https://repl.it/repls/CalculatingMellowBaitware

    Se lukumäärä on n:n tekijöiden määrä jaettuna kahdella, eli saadaan alkutekijäesityksestä, esim

    2014974700940990813374532004655625
    = 5^4 * 13^2 * 17^2 * 29^2 * 37 * 41 * 53 * 61 * 73 * 89 * 97 * 101 * 109 * 113 * 137 * 149

    joten sillä on (4 1) * (2 1)**3 * (1 1)**12 / 2 = 276480 kappaletta esityksiä.

    Selvittääkö koodisi kaikki esim luvun 98710365989369069385907608125 esitykset? Omani taitaa noilla paikkeilla hyytyä (tai vie pitempään kuin mitä tuo SageMathCell antaa prosessointiaikaa).

    Äänestä

  • minkkilaukku kirjoitti:

    Uusi koodi: https://repl.it/repls/CalculatingMellowBaitware

    Se lukumäärä on n:n tekijöiden määrä jaettuna kahdella, eli saadaan alkutekijäesityksestä, esim

    2014974700940990813374532004655625
    = 5^4 * 13^2 * 17^2 * 29^2 * 37 * 41 * 53 * 61 * 73 * 89 * 97 * 101 * 109 * 113 * 137 * 149

    joten sillä on (4 1) * (2 1)**3 * (1 1)**12 / 2 = 276480 kappaletta esityksiä.

    Selvittääkö koodisi kaikki esim luvun 98710365989369069385907608125 esitykset? Omani taitaa noilla paikkeilla hyytyä (tai vie pitempään kuin mitä tuo SageMathCell antaa prosessointiaikaa).

    Heh, vielä se sen näyttikin laskeneen:
    69120 ways to represent 98710365989369069385907608125 as sum of 2 squares
    [(49832341411658, 310204938288869), (18569189005130, 313632828653285), (128270100168538, 286805068630459), (81927567000955, 303312116069690), ..., (211461400331090, 232367041895755)]

    Äänestä

  • minkkilaukku kirjoitti:

    Uusi koodi: https://repl.it/repls/CalculatingMellowBaitware

    Se lukumäärä on n:n tekijöiden määrä jaettuna kahdella, eli saadaan alkutekijäesityksestä, esim

    2014974700940990813374532004655625
    = 5^4 * 13^2 * 17^2 * 29^2 * 37 * 41 * 53 * 61 * 73 * 89 * 97 * 101 * 109 * 113 * 137 * 149

    joten sillä on (4 1) * (2 1)**3 * (1 1)**12 / 2 = 276480 kappaletta esityksiä.

    Selvittääkö koodisi kaikki esim luvun 98710365989369069385907608125 esitykset? Omani taitaa noilla paikkeilla hyytyä (tai vie pitempään kuin mitä tuo SageMathCell antaa prosessointiaikaa).

    Ei muutaman rivin tyhmä Python silmukkaohjelmani selviä kovin suurista luvuista. Laskin vain pienillä alkupään luvuilla.

    322056255625 #160 kpl
    785817263725 #192 kpl
    2846977299725 #216 kpl

    Tuo viimeinen vie ehkä n. 4 minuuttia. Lasken b:n (b>=a) minimi ja maksimiarvot ja sitten toisessa silmukassa b:n avulla a:lle minimin ja maksimin kokonaislukuin. Rajoittaa riittävästi vaihtoehtoja. Ei tarvitse ajatella mitään. Pypy hoitaa homman riittävän nopeasti eikä tee virheitä.

    Kun sain itse laskettua ekan "ison" luvu 3159797225 (72 kpl), niin sen avulla löytyi tietysti tuttuun tapaan oeis.org sivu

    https://oeis.org/A052199

    ja sieltä Ray Chandlerin lista, jossa on 422 ensimmäistä lukua. Niiden vaihtoehtojen määriä en ole löytänyt mistään. Ovat varmasti jossakin.

    Äänestä

  • Anonyymi kirjoitti:

    Ei muutaman rivin tyhmä Python silmukkaohjelmani selviä kovin suurista luvuista. Laskin vain pienillä alkupään luvuilla.

    322056255625 #160 kpl
    785817263725 #192 kpl
    2846977299725 #216 kpl

    Tuo viimeinen vie ehkä n. 4 minuuttia. Lasken b:n (b>=a) minimi ja maksimiarvot ja sitten toisessa silmukassa b:n avulla a:lle minimin ja maksimin kokonaislukuin. Rajoittaa riittävästi vaihtoehtoja. Ei tarvitse ajatella mitään. Pypy hoitaa homman riittävän nopeasti eikä tee virheitä.

    Kun sain itse laskettua ekan "ison" luvu 3159797225 (72 kpl), niin sen avulla löytyi tietysti tuttuun tapaan oeis.org sivu

    https://oeis.org/A052199

    ja sieltä Ray Chandlerin lista, jossa on 422 ensimmäistä lukua. Niiden vaihtoehtojen määriä en ole löytänyt mistään. Ovat varmasti jossakin.

    Tyhmä koodi oli virheellinen ja se laski tuhansia kertoja liikaa jälkimmäisessä silmukassa. Ja koko jälkimmäinen silmukka oli turha, sillä a:n arvon saa laskettua neliöjuurella ihan suoraankin. Pitää vain varmistaa, että luku on kokonaisluku. Lyhennetty koodi alkoi hyytymään vasta 52. luvun 32189892277066454125 kohdalla. Onkohan nuo lukumäärät oikeita? Pitää tarkistaa huomenna esittämälläsi tavalla alkulukujen tekijöiden määristä. Luvut alkavat olla liian suuria prosessorin nopeille liukuluvuille.

    n29 = 3929086318625 # 256
    n30 = 10215624428425 # 288
    n31 = 19645431593125 # 320
    n32 = 51078122142125 # 384
    n33 = 173665615283225 # 432
    n34 = 255390610710625 # 480
    n35 = 286823301259625 # 512
    n36 = 745740583275025 # 576
    n37 = 1434116506298125 # 640
    n38 = 3728702916375125 # 768
    n39 = 12677589915675425 # 864
    n40 = 18643514581875625 # 960
    n41 = 25527273812106625 # 1024
    n42 = 63387949578377125 # 1152
    n43 = 127636369060533125 # 1280
    n44 = 316939747891885625 # 1440
    n45 = 331854559557386125 # 1536
    n46 = 1128305502495112825 # 1728
    n47 = 1659272797786930625 # 1920
    n48 = 2476145559774342625 # 2048
    n49 = 5641527512475564125 # 2304
    n50 = 12380727798871713125 # 2560
    n51 = 28207637562377820625 # 2880
    n52 = 32189892277066454125 # 3072

    Äänestä

  • Anonyymi kirjoitti:

    Tyhmä koodi oli virheellinen ja se laski tuhansia kertoja liikaa jälkimmäisessä silmukassa. Ja koko jälkimmäinen silmukka oli turha, sillä a:n arvon saa laskettua neliöjuurella ihan suoraankin. Pitää vain varmistaa, että luku on kokonaisluku. Lyhennetty koodi alkoi hyytymään vasta 52. luvun 32189892277066454125 kohdalla. Onkohan nuo lukumäärät oikeita? Pitää tarkistaa huomenna esittämälläsi tavalla alkulukujen tekijöiden määristä. Luvut alkavat olla liian suuria prosessorin nopeille liukuluvuille.

    n29 = 3929086318625 # 256
    n30 = 10215624428425 # 288
    n31 = 19645431593125 # 320
    n32 = 51078122142125 # 384
    n33 = 173665615283225 # 432
    n34 = 255390610710625 # 480
    n35 = 286823301259625 # 512
    n36 = 745740583275025 # 576
    n37 = 1434116506298125 # 640
    n38 = 3728702916375125 # 768
    n39 = 12677589915675425 # 864
    n40 = 18643514581875625 # 960
    n41 = 25527273812106625 # 1024
    n42 = 63387949578377125 # 1152
    n43 = 127636369060533125 # 1280
    n44 = 316939747891885625 # 1440
    n45 = 331854559557386125 # 1536
    n46 = 1128305502495112825 # 1728
    n47 = 1659272797786930625 # 1920
    n48 = 2476145559774342625 # 2048
    n49 = 5641527512475564125 # 2304
    n50 = 12380727798871713125 # 2560
    n51 = 28207637562377820625 # 2880
    n52 = 32189892277066454125 # 3072

    Kyllä nuo lukumäärät näyttäisi oikeilta.
    Sagella helppo testata koodilla

    len(divisors(n))

    tai jos ei halua kaikkia tekijöitä generoida, niin

    product(e 1 for p,e in factor(n))

    Ennätys-lukujen listaamisen voisi tehdä näin: https://repl.it/repls/VerticalDecisiveClosedsource
    Mutta tuossa pitää sitten tarkastella mihin asti tuo lista menee oikein. Siinä annetaan rajat niille hyvien (= muotoa 4k 1) alkulukujen potensseille ja listataan näin saatavat tulot, järjestetään ne ja kerätään sitten ennätys-luvut. Mitä suuremmat rajat annetaan, sitä pitemmältähän alkupää menee oikein, mutta laskenta vie tietysti pitempään.

    Äänestä

  • minkkilaukku kirjoitti:

    Kyllä nuo lukumäärät näyttäisi oikeilta.
    Sagella helppo testata koodilla

    len(divisors(n))

    tai jos ei halua kaikkia tekijöitä generoida, niin

    product(e 1 for p,e in factor(n))

    Ennätys-lukujen listaamisen voisi tehdä näin: https://repl.it/repls/VerticalDecisiveClosedsource
    Mutta tuossa pitää sitten tarkastella mihin asti tuo lista menee oikein. Siinä annetaan rajat niille hyvien (= muotoa 4k 1) alkulukujen potensseille ja listataan näin saatavat tulot, järjestetään ne ja kerätään sitten ennätys-luvut. Mitä suuremmat rajat annetaan, sitä pitemmältähän alkupää menee oikein, mutta laskenta vie tietysti pitempään.

    Sainkin tarkistettua nuo luvumäärät myös suoraan Integer factorization calculatorilla:

    https://www.alpertron.com.ar/ECM.HTM

    Laskee isotkin luvut alle sekunnissa. Myös 400.:n luvun ja kertoo senkin Number of divisors ja paljon muuta.

    https://oeis.org/A052199 sarjan kaikki luvut (n) ovat ovat tekijöiltään samanlaisia. Ja kasvavat yksinkertaiselta näyttävän säännön mukaan säännöllisesti. Ihmeellistä. Miksei noita lukuja ole nimetty mitenkään?

    Nyt kun alkaa ymmärtämään asian yksinkertaisuuden, on helppoa soveltaa kaikkia yleisiä kokonaislukuisten neliöjuurien laskentapoja ja karsia heti kaikki epäkelvot tapaukset pois.

    Helppo yhtälö: a = sqrt(n - b^2). Kaikki n:n arvot jakautuvat kahteen eri luokkaan: helpot ja vaikeat. Koska n on "erikoisluku", löytyy varmasti joitakin yksinkertaisesti ymmärettäviä teorioita yhtälön ratkaisuun juuri tässä erikoistapauksessa.

    Laskeeko sinun täällä esittämäsi koodit myös kaikki nuo kysytyt a:n ja b:n arvot? Vaiko vain niiden määrät? Vaikea nähdä.

    Äänestä

  • Anonyymi kirjoitti:

    Sainkin tarkistettua nuo luvumäärät myös suoraan Integer factorization calculatorilla:

    https://www.alpertron.com.ar/ECM.HTM

    Laskee isotkin luvut alle sekunnissa. Myös 400.:n luvun ja kertoo senkin Number of divisors ja paljon muuta.

    https://oeis.org/A052199 sarjan kaikki luvut (n) ovat ovat tekijöiltään samanlaisia. Ja kasvavat yksinkertaiselta näyttävän säännön mukaan säännöllisesti. Ihmeellistä. Miksei noita lukuja ole nimetty mitenkään?

    Nyt kun alkaa ymmärtämään asian yksinkertaisuuden, on helppoa soveltaa kaikkia yleisiä kokonaislukuisten neliöjuurien laskentapoja ja karsia heti kaikki epäkelvot tapaukset pois.

    Helppo yhtälö: a = sqrt(n - b^2). Kaikki n:n arvot jakautuvat kahteen eri luokkaan: helpot ja vaikeat. Koska n on "erikoisluku", löytyy varmasti joitakin yksinkertaisesti ymmärettäviä teorioita yhtälön ratkaisuun juuri tässä erikoistapauksessa.

    Laskeeko sinun täällä esittämäsi koodit myös kaikki nuo kysytyt a:n ja b:n arvot? Vaiko vain niiden määrät? Vaikea nähdä.

    Joo, tämä: https://repl.it/repls/CalculatingMellowBaitware tuottaa myös kaikki tavat. Kun se tapojen määrä alkaa tulla suureksi, niin tietenkin hidastuu. Senhän voisi toki muuttaa sellaiseksi, että se generoi niitä eikä palauta kaikkia listassa.

    Helpoista yhtälöistä puheen ollen, voidaan myös kirjoittaa

    n = a^2 b^2 = (a b*i)(a-b*i)

    ja sehän se juuri johtaa tuonne Gaussin kokonaislukujen maailmaan ja siihen miten n voidaan siellä jakaa tekijöihin.

    Äänestä

Kommentoi aloitusta


Anonyymi kirjoitti:

1. Voiko kahdesta neliöluvusta koostuvan luvun jakaa kahteen muuhun neliölukuun.
Esim. 4^2 5^2=41 Eli a^2 b^2=41 toteutuisi myös jollain toisilla kokonaisluvuilla a ja b ?

2. Koostuuko jokainen kahdesta neliöluvusta saatu luku kerrottuna kahdella, kahdesta neliöluvusta?
Esim. 4^2 6^2=52 Eli 52 on kahdesta neliöluvusta saatu luku. 52 kertaa 2 on 104.
Myös 104 kostuu kahdesta neliöluvusta: 2^2 10^2=104
Toimiiko tämä joka kerta ja onko suht simppeliä todistusta?

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu