Matematické Fórum


1. 8. 2026 (L) Fórum bude brzy uzavřeno 😿

Nejste přihlášen(a). Přihlásit

#1 27. 07. 2024 09:20

kastanek
Příspěvky: 209
Škola: G
Pozice: student
Reputace:   
 

Zdrojový kód částečného odmocnění

Zdravím, chtěl bych se zeptat, zda nevíte na netu o nějakém zdrojovém kódu, který by ze zadaného přirozeného čísla vygeneroval dvě hodnoty reprezentující částečné odmocnění – číslo před odmocninou a číslo, které zůstane pod odmocninou. Např. zadáním čísla 384 bych měl dostat čísla 8 a 6, nebož sqrt(384) = 8*sqrt(6). Zkoušel jsem gůglit, ale neúspěšně, AI je na to pořád ještě hloupá.

Offline

 

#2 27. 07. 2024 14:07

Aleš13
Příspěvky: 383
Reputace:   
 

Re: Zdrojový kód částečného odmocnění

Faktorizuj, koeficienty s exponentem div 2 zažeň pod odmocninu, s exponentem mod 2 nech venku a máš hotovo.

Offline

 

#3 27. 07. 2024 20:02

check_drummer
Příspěvky: 5577
Reputace:   106 
 

Re: Zdrojový kód částečného odmocnění

↑ kastanek:
Jestli je AI hloupá na toto, tak je hloupá celkově. Ale to se asi dá čekat, že není radno AI vše věřit a bezmezně jí důvěřovat.


"Máte úhel beta." "No to nemám."

Offline

 

#4 28. 07. 2024 09:34

kastanek
Příspěvky: 209
Škola: G
Pozice: student
Reputace:   
 

Re: Zdrojový kód částečného odmocnění

↑ Aleš13:
Tak princip je jasný, ale realizace už je jiný kafe. Já bych to nějak sesmolil, ale pro velká čísla by cykly procházely příliš mnoho čísel, bylo by to pomalé a asi bych to měl neohrabané. Tak jsem myslel nějaké hotové OPTIMALIZOVANÉ řešení.
↑ check_drummer:
Na moje dotazy AI odpovídá správně jen málokdy. V matematice snad nikdy. Ale zato si hodně vymýšlí.

Offline

 

#5 28. 07. 2024 09:45

check_drummer
Příspěvky: 5577
Reputace:   106 
 

Re: Zdrojový kód částečného odmocnění

↑ kastanek:
V principu to může běžet dlouho, protože rozklad na prvočísla je NP úplná úloha, jsou na tom založeny i některé metody šifrování.


"Máte úhel beta." "No to nemám."

Offline

 

#6 28. 07. 2024 10:14

mák
Místo: Vesmír, Galaxie MD
Příspěvky: 920
Reputace:   63 
 

Re: Zdrojový kód částečného odmocnění

Kód pro rozklad na prvočísla jde nalézt třeba zde: Odkaz


LibreOffice Verze: 25.8.4.2, Maxima 5.49.0 (SBCL)

Offline

 

#7 29. 07. 2024 22:54 — Editoval kastanek (30. 07. 2024 08:46)

kastanek
Příspěvky: 209
Škola: G
Pozice: student
Reputace:   
 

Re: Zdrojový kód částečného odmocnění

Nakonec jsem to poměrně úsporně vyřešil takto (v PHP). Pokud je v tom skrytý nějaký problém, napište sem prosím. Samozřejmě na extra velká čísla to použitelné není. Řeší to [mathjax]\sqrt{number}=pred\cdot \sqrt{pod}[/mathjax].

Code:

function odmocni($number,$cislo) {
   $pred=1;
   $pod=$number;
   for ($i=2; $i <= sqrt($number); $i++) {
       if (($pod>=$i*$i) and ($pod % ($i*$i) == 0)) {
          $pred=$pred*$i;
          $pod=$pod/($i*$i);
          $i=$i-1;
          }
       }
   if ($cislo==1) {return $pred;};    
   if ($cislo==2) {return $pod;}; 
   }
$number=384;
echo odmocni($number,1)."*sqrt(".odmocni($number,2).")";

Offline

 

#8 30. 07. 2024 20:11

check_drummer
Příspěvky: 5577
Reputace:   106 
 

Re: Zdrojový kód částečného odmocnění

↑ kastanek:
Co ti to vrátí, když tomu dáš na vstup číslo 48?


"Máte úhel beta." "No to nemám."

Offline

 

#9 30. 07. 2024 21:41

kastanek
Příspěvky: 209
Škola: G
Pozice: student
Reputace:   
 

Re: Zdrojový kód částečného odmocnění

↑ check_drummer:
Vyhodí to "4*sqrt(3)". Resp. to echo na konci kódu. Mám to z jistých důvodů rozdělené tak, že pomocí druhého parametru je na výstupu buď číslo před odmocninou, nebo číslo pod odmocninou.

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson