kolmapäev, juuni 12, 2024

Ikka ei oska

Ma siin aprillis juba jamasin kõrgema matemaatikaga ja jaman siiani. Vaikselt hakkab juba üle viskama. Igatahes olen jõudnud selle leheni ja seal on koodijupp olemas, aga ma ei oska seda tööle saada. Mida ma seal täpselt asendama ja kuidas kopeerima pean, et näiteks teada saada, mitmes see pagana 507813127 on?



8 kommentaari:

  1. Ma võiks aidata, aga selleks ma peaks aru saama, mida sa teha tahad. Hetkel sa koostad listi algarvude astmetest? Sest miks?

    Suudad sa oma eesmärgi täpselt sõnastada?

    VastaKustuta
    Vastused
    1. Või no kui eesmärk on endiselt algarvu järjekorranumber leida, siis see on sul viidatud sissekandes minu arust ju õigesti lahendatud...

      Kustuta
    2. Järjekorranumbrit otsin jätkuvalt. See esimene lahendus olevat vale, kuna prime poweride alla lähevad ka almost primed. Väidetavalt saavat seal lehel oleva koodijupiga õige vastuse.

      Kustuta
    3. Mis...??? Mida tähendab "vale"? Ikkagi oleks vaja teada, mida täpselt on vaja teha. Esimene lahendus töötab korrektselt, st leiab arvu järjekorranumbri algarvude reas. See viidatud uus koodijupp väljastab A000961 nimelise rea (algarvud ja nende algarvude astmed).

      On sul siis ülesande kirjeldus mingil viisil olemas? Muidu pole võimalik valideerida, mis on "vale" või "õige".

      Kustuta
    4. Ülesande kirjeldus ongi lihtsalt, et "Mõiste prime power all tuntakse matemaatikas arve, mis jaguvad ainult ühe algarvuga. Sellised on näiteks 507813127 ja 1156439861. Leia, mitmendad need omasuguste seas on." Konks peaks siis olema see "omasuguste", sest väidetavalt saab seda prime power mõistet mitmeti tõlgendada. "Prime(n) on peaaegu = power(n)iga, kuid mida suuremaks minna, siis seda suuremaks läheb nihe. Sest kõik prime poweride alla läheb ka almost primed. Ühesõnaga, sealt lingilt leiad koodijupi, sellega saad juba lahendada" - sellise vihje sain.

      Kustuta
  2. Ah, ok, see on geopeituse aare lihtsalt. Huvitav ülesanne. Lihtne viis oleks see list kuni antud arvudeni (507813127 ja 1156439861) välja arvutada tolle sympy abil - ja vaja on siis lihtsalt listi pikkust. Minu arvuti (iidvana) aga sellega hakkama ei saa.

    Nupukam viis on mõelda, et see list koosneb kahest komponendist - algarvude list, ja siis astmesse võetud algarvude list. Algarvude list on toosama sympy primerange() funktsioon, aga selle pikkust tead sa juba eelmise sissekande abil niikuinii. Seega tuleb vaid leida algarvude astmete list, õigemini selle pikkus. Mis on tehtav nii analüütiliselt (valemi järgi) kui välja arvutades, sest peame arvesse võtma vaid algarve kuni ruutjuureni sellest 507813127-st ja 1156439861-st.

    Ja sind huvitav indeks peaks olema siis nende kahe listi pikkuste summa.

    VastaKustuta
    Vastused
    1. Ehk siis, näiteks sinu eelmises sissekandes leidud arvule (507813127 => 26745194) tuleb juurde liita kõikide selliste arvude arv, mis on:
      a) väiksemad kui 507813127,
      b) ja mis on ise teiste algarvude astmed - ruudud, kuubid, neljandad ja viiendad ja tuhandendad astmed. Kuid neid algarv-astmes-tuhat arve sinna palju ei mahu, praktikas peaks piisama, kui sa leiad kõik kuni viienda astmeni. Ehk siis sa võtad oma 507813127-st teise, kolmanda, neljanda viienda juure; loed kokku, palju on sellest juurest väiksemaid algarve (tollesama sympy primerange abil näiteks); liidad nood kõik kokku ja siis lisad alguses leitud 26745194-le.

      Kustuta
    2. Oh, ole sa tänatud!

      Kustuta