mat. funkcija podobna korenu

O matematiki, številih, množicah in računih...
alexa-lol
Posts: 380
Joined: 12.5.2006 19:57

Post by alexa-lol » 5.10.2006 20:56

ja sj to je vse res kar si rekel..
saj jutri bom naredil tako->morda ze danes
najprej enice, potem desetine, stotine,tisocine......xine doloc pol pa izpise

BTW...ta koda ne dela->Parse error: syntax error, unexpected $end in C:\Program Files\xampp\htdocs\logu.php on line 20->zgleda da ni pricakoval da se koda konca(koda ima 20 vrstic)

User avatar
Aniviller
Posts: 7263
Joined: 15.11.2004 18:16

Post by Aniviller » 5.10.2006 21:28

lol, v

Code: Select all

$_POST['stv']; 
je manjkal narekovaj :oops:
Ce ni se kaj narobe, bi moglo delat.

alexa-lol
Posts: 380
Joined: 12.5.2006 19:57

Post by alexa-lol » 5.10.2006 21:49

ja no zdaj dela sam zracuna pa cisto narobe...
1000 je rekel da je \(5.93^{5.93}\)-> to je skor 40 000

no sm naredu skripto ki izracuna do 0.000001 natancno

Code: Select all

<form method="post">
Stevilo: <input type="text" name="stv"/><br />
<input type="submit" value="Poslji"/>
</form>

<?php
$a=0;
//enice
while(pow($a,$a)<$_POST['stv']){
$a=$a+1;
pow($a,$a);
}
$a=$a-1;

//desetine
while(pow($a,$a)<$_POST['stv']){
$a=$a+0.1;
pow($a,$a);
}
$a=$a-0.1;

//stotine
while(pow($a,$a)<$_POST['stv']){
$a=$a+0.01;
pow($a,$a);
}
$a=$a-0.01;

//tisocine
while(pow($a,$a)<$_POST['stv']){
$a=$a+0.001;
pow($a,$a);
}
$a=$a-0.001;

//d tisocine
while(pow($a,$a)<$_POST['stv']){
$a=$a+0.0001;
pow($a,$a);
}
$a=$a-0.0001;

//s tisocine
while(pow($a,$a)<$_POST['stv']){
$a=$a+0.00001;
pow($a,$a);
}
$a=$a-0.00001;

//miljonine
while(pow($a,$a)<$_POST['stv']){
$a=$a+0.000001;
pow($a,$a);
}
$a=$a-0.000001;

//izpis
print $a;
$b = pow($a,$a);
$c = $_POST['stv'] - $b;
$d = ceil($b);
print "<br/ >a na a je enako {$b}";
print "<br/ >vendar bi moral pristeti se {$c}";
print "<br/ >zaokrozena na vzgor(0,1->1) je to {$d}";
?>

PS
kaj je mearsenovo stevil \(2^p-1\)
to v praksi pomeni da 2 na neko stevilo -1 je prastevilo?

User avatar
Aniviller
Posts: 7263
Joined: 15.11.2004 18:16

Post by Aniviller » 6.10.2006 9:29

Hja, to se pa zgodi ce programiras na list papirja :? V while pogoju je obvezna absolutna vrednost, drugace razglasi vse negativne za manjse od 0.00001 :oops:
Zdaj pa dela, sem preveril na Mathematici. Za a=1000 naredi 23 korakov, za a=3000 pa 26. Sta pa kodi zdaj v povprecju enakovredni, tvoja je hitrejsa za nizje natancnosti. Mogoce le se pospravi vse te enake while zanke v eno vecjo for da bo koda bolj kompaktna. Pa se to, tehle pow($a,$a) se vedno ne potrebujes se mi zdi.

Code: Select all

while(pow($a,$a)<$_POST['stv']){
$a=$a+1;
pow($a,$a); //ne vidim smisla tele kode, samo zgubljas polovico porabljenega casa.
}
$a=$a-1; 

User avatar
Aniviller
Posts: 7263
Joined: 15.11.2004 18:16

Post by Aniviller » 6.10.2006 9:35

alexa-lol wrote:PS kaj je mearsenovo stevil \(2^p-1\)
to v praksi pomeni da 2 na neko stevilo -1 je prastevilo?
Bolj natancno, mersennovo prastevilo je prastevilo oblike
\(2^p-1\) kjer je tudi p prastevilo. Drugace itak ne more biti prastevilo ker je enostavno razcepit.

Pri iskanju lahko tudi sodelujes.

alexa-lol
Posts: 380
Joined: 12.5.2006 19:57

Post by alexa-lol » 6.10.2006 13:24

Aniviller wrote:

Code: Select all

while(pow($a,$a)<$_POST['stv']){
$a=$a+1;
pow($a,$a); //ne vidim smisla tele kode, samo zgubljas polovico porabljenega casa.
}
$a=$a-1; 
ja je smisel te kode ker to zmnozi potem gre pa nazaj do zanek while in pac to doblejno cifro pogleda ce je manjsa od stevila X.

to za mearsenovo stevilo...
sm dau ze dol samo mi je v enem mescu samo 13% nardil...
verjetn zato k dela samo ko 10 min nic ne prtiskas

PS. a je ker drug nacina da se zve al je neo stevil prastevilo kukr da ga rastavlas na prafaktorje

alexa-lol
Posts: 380
Joined: 12.5.2006 19:57

Post by alexa-lol » 6.10.2006 13:28

kako to misls s for zanko?

kako bi dopovcedal kdaj naj enice, kdaj desetine, stotine pristeva?

a lahko uno svojo kodo nalimas sem->tist ko si neki govoril da dela zdaj

User avatar
Aniviller
Posts: 7263
Joined: 15.11.2004 18:16

Post by Aniviller » 6.10.2006 13:52

alexa-lol wrote: ja je smisel te kode ker to zmnozi potem gre pa nazaj do zanek while in pac to doblejno cifro pogleda ce je manjsa od stevila X.
Hm... to lahko dela sproti se mi zdi.

O primality-testu pise marsikaj, veliko ze na wiki. Tudi hitrosti so bistevno visje kot probavanje vseh variant.

Code: Select all

<form method="post">
Stevilo: <input type="text" name="stv"/><br />
<input type="submit" value="Poslji"/>
</form>

<?php
$stevilo=$_POST['stv'];
$a1=0;
$a2=log($stevilo)+1;
$a=($a1+$a2)/2;
while(abs($stevilo-pow($a,$a))>0.000001){ //sam tale absolutna je manjkala,
                                        //razen ce php pocne kaj cudnega.
    if(pow($a,$a)>$stevilo)
        $a2=$a;
    else
        $a1=$a;
    $a=($a1+$a2)/2;
}
print $a;

?>
Drugace bi pa jaz naredil tole:

Code: Select all

<form method="post">
Stevilo: <input type="text" name="stv"/><br />
<input type="submit" value="Poslji"/>
</form>

<?php 
$a=0.367879; //to lahko naredis ker je to spodnja meja za rezultat, ce imas pa samo naravna stevila pa lahko das tukaj kar 1.

for($inc=1; $inc>0.0000001; $inc=$inc/10){ //spreminjas korak

while(pow($a,$a)<$_POST['stv']){
$a=$a+$inc;
pow($a,$a); //ceprav mislim da dela tudi brez, da sproti to racuna v while,
            //s tem samo prisilis da shranjuje in se enkrat bere, ce sploh ve da je to ze zracunal....
}
$a=$a-$inc; 

}
//izpis
print $a;
$b = pow($a,$a);
$c = $_POST['stv'] - $b;
$d = ceil($b);
print "<br/ >a na a je enako {$b}";
print "<br/ >vendar bi moral pristeti se {$c}";
print "<br/ >zaokrozena na vzgor(0,1->1) je to {$d}"; 
?>
Pa upam d nisem spet kaj zaj.....

User avatar
Aniviller
Posts: 7263
Joined: 15.11.2004 18:16

Post by Aniviller » 6.10.2006 13:54

alexa-lol wrote:to za mearsenovo stevilo...
sm dau ze dol samo mi je v enem mescu samo 13% nardil...
verjetn zato k dela samo ko 10 min nic ne prtiskas
13% cesa? Upam da ne prve faktorizacije 8)
Ne vem, men dela skoz, se ne pozna to da se prilagaja porabi. Sem danes spet zagnal pa je pri 2^66, 22% pa premakne se na dve minuti.

alexa-lol
Posts: 380
Joined: 12.5.2006 19:57

Post by alexa-lol » 6.10.2006 15:15

ja tist k mas na zacetku neki...
2^66-brezveze-od 31mio pa neki daj naprej k 31 mio pa neki je 44 to stevilo

ta koda dela ja-ta 1.
in 2. tut

alexa-lol
Posts: 380
Joined: 12.5.2006 19:57

Post by alexa-lol » 2.12.2006 21:02

hi,
mene zanima kako bi izracunal \(x + x+1 + x+2 +....+ x+n\)

User avatar
sstone
Posts: 180
Joined: 30.11.2004 0:05

Post by sstone » 2.12.2006 23:37

Če prav razumem bi rad izračunal vsoto aritmetičnega zaporedja z diferenco d=1, npr.: 1000+1001+1002+... .
Vsoto izračunaš s pomočjo te enačbe: \(S_n = \frac{n \cdot (a_1 + a_n)}{2}\) oz. te \(S_n = \frac{n \cdot(2 \cdot a_1 + (n-1) \cdot d )}{2}\).
Kjer je \(a_1\) prvi člen zaporedja(v tvojem primeru x), \(a_n\) zadnji člen zaporedja(v tvojem primeru x+n), n je število členov, d pa je diferenca med členi(v tvojem primeru 1).

Post Reply