Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

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

#1 27. 07. 2024 09:20

kastanek
Příspěvky: 180
Š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: 357
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: 4939
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: 180
Š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: 4939
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: 897
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: 7.6.6.3, Maxima 5.47.0 (SBCL)

Offline

 

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

kastanek
Příspěvky: 180
Š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: 4939
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: 180
Š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