Thread View: alt.pl.matematyka
12 messages
12 total messages
Started by EMET
Sun, 28 Mar 2010 10:05
Znaleźć bez użycia tablic
Author: EMET
Date: Sun, 28 Mar 2010 10:05
Date: Sun, 28 Mar 2010 10:05
12 lines
1526 bytes
1526 bytes
Jak bez żmudnego przepatrywania tablic znaleźć liczbę - liczby *całkowitą/e/* taką/ie/, której/ych/ pierwiastek 2-go stopnia da w rozwinięciu dziesiętnym po przecinku cyfry w następującej po sobie kolejności: 83262? Czyli: dana liczba całkowita do potęgi 1/2 daje jakąś wartość taką, gdzie po przecinku znajdą się cyfry w kolejności: 83262. a,83262 Stephanos
Re: Znaleźć bez użycia tablic
Author: WuKa
Date: Sun, 28 Mar 2010 15:56
Date: Sun, 28 Mar 2010 15:56
22 lines
2032 bytes
2032 bytes
Użytkownik "EMET" <stephanos@poczta.onet.pl> napisał w wiadomości news:honaav$g1m$1@nemesis.news.neostrada.pl... > Jak bez żmudnego przepatrywania tablic > znaleźć liczbę - liczby *całkowitą/e/* taką/ie/, > której/ych/ pierwiastek 2-go stopnia > da w rozwinięciu dziesiętnym po przecinku > cyfry w następującej po sobie kolejności: 83262? > Czyli: dana liczba całkowita do potęgi 1/2 daje > jakąś wartość taką, gdzie po przecinku znajdą się > cyfry w kolejności: 83262. > a,83262 > > > Stephanos Nie wiem, czy dobrze zrozumiałem niejasny zapis z tymi "/", ale wygląda na to, że szukasz liczby całkowitej k takiej, by sqrt(k)=(a),83262, czyli k=((a),83262)^2. Jak widzisz, k<=0 nie wchodzą w rachubę, czyli zostają k naturalne. Jak sądzisz, czy są takie liczby naturalne k, które byłyby kwadratami liczby ((a),83262), gdzie "a" mogłoby być którąkolwiek liczbą całkowitą, bo przecież niecałkowita nie może tu wchodzić w rachubę? WuKa
Re: Znaleźć bez użycia tablic
Author: EMET
Date: Sun, 28 Mar 2010 18:21
Date: Sun, 28 Mar 2010 18:21
34 lines
2527 bytes
2527 bytes
Użytkownik "WuKa" <wlkala@op.pl> napisał w wiadomości news:honu6d$fm9$1@news2.ipartners.pl... > Użytkownik "EMET" <stephanos@poczta.onet.pl> napisał w wiadomości > news:honaav$g1m$1@nemesis.news.neostrada.pl... >> Jak bez żmudnego przepatrywania tablic >> znaleźć liczbę - liczby *całkowitą/e/* taką/ie/, >> której/ych/ pierwiastek 2-go stopnia >> da w rozwinięciu dziesiętnym po przecinku >> cyfry w następującej po sobie kolejności: 83262? >> Czyli: dana liczba całkowita do potęgi 1/2 daje >> jakąś wartość taką, gdzie po przecinku znajdą się >> cyfry w kolejności: 83262. >> a,83262 >> > >> Stephanos > Nie wiem, czy dobrze zrozumiałem niejasny zapis z tymi "/", ale wygląda na > to, że szukasz liczby całkowitej k takiej, by sqrt(k)=(a),83262, czyli > k=((a),83262)^2. > Jak widzisz, k<=0 nie wchodzą w rachubę, czyli zostają k naturalne. Jak > sądzisz, czy są takie liczby naturalne k, które byłyby kwadratami liczby > ((a),83262), gdzie "a" mogłoby być którąkolwiek liczbą całkowitą, bo > przecież niecałkowita nie może tu wchodzić w rachubę? > > WuKa Uściślę -- "Początkowe cyfry" po przecinku są takie, jak podałem; czyli początkowe pięć cyfr to: 83262. Np. 62^(1/2) = 7,8740078... 97^(1/2) = 9,84885... Stephanos
Re: Znaleźć bez użycia tablic
Author: bartekltg
Date: Sun, 28 Mar 2010 23:18
Date: Sun, 28 Mar 2010 23:18
47 lines
2791 bytes
2791 bytes
On 28 Mar, 20:21, "EMET" <stepha...@poczta.onet.pl> wrote:
> Użytkownik "WuKa" <wlk...@op.pl> napisał w wiadomościnews:honu6d$fm9$1@news2.ipartners.pl...
>
>
>
> > Użytkownik "EMET" <stepha...@poczta.onet.pl> napisał w wiadomości
> >news:honaav$g1m$1@nemesis.news.neostrada.pl...
> >> Jak bez żmudnego przepatrywania tablic
Brutalna sila komputera;)
64431 253.83262201695
237006 486.832620106747
239936 489.832624474932
242884 492.832628789937
522487 722.832622396084
526833 725.832625334519
531197 728.832628248763
913616 955.832621330743
919360 958.83262355846
925122 961.832625772281
930902 964.832627972334
Bez zbytniego wysilania sie,
x=1:1000000; s=sqrt(x);s=s-floor(s);find( s>=0.83262 & s<0.83263 )'
liczy niecala sekunde.
Jak to zrobic sprytniej?
Odwroc zagadnienie.
(a+r)^2 ma byc calkowita.
czyli 2a*r+r^2 ma byc calkowita.
gdzie r w przedziale [0.83262 0.83263)
Przerzucasz r^2 na druga strone,
2*a*r = c-r^2 ~ 0.306727 .. 0.306743
Szukasz wiec takiej liczby, ktora przemnozona przez 2r
da wspomniana koncowke.
Jest to prostrze, ale nie wiem jak to liczc, aby miec pewnosc,
ze nie pominie sie zadnych liczb.
pozdrawiam
bartekltg
pozdrawiam
bartekltg
Re: Znaleźć bez użycia tablic
Author: Maciej Woźniak
Date: Mon, 29 Mar 2010 06:23
Date: Mon, 29 Mar 2010 06:23
16 lines
1586 bytes
1586 bytes
Użytkownik "EMET" <stephanos@poczta.onet.pl> napisał w wiadomości news:honaav$g1m$1@nemesis.news.neostrada.pl... > Jak bez żmudnego przepatrywania tablic > znaleźć liczbę - liczby *całkowitą/e/* taką/ie/, > której/ych/ pierwiastek 2-go stopnia > da w rozwinięciu dziesiętnym po przecinku > cyfry w następującej po sobie kolejności: 83262? > Czyli: dana liczba całkowita do potęgi 1/2 daje > jakąś wartość taką, gdzie po przecinku znajdą się > cyfry w kolejności: 83262. > a,83262 (a+0.83262)^2=a^2+2*a*0.83262+0.83262^2. Czyli, szukasz takich a, żeby 2*a*0.83262+0.83262^2 było w przybliżeniu liczbą naturalną.
Re: Znaleźć bez użycia tablic
Author: Maciek
Date: Mon, 29 Mar 2010 08:41
Date: Mon, 29 Mar 2010 08:41
26 lines
1671 bytes
1671 bytes
Użytkownik "EMET" <stephanos@poczta.onet.pl> napisał w wiadomości news:honaav$g1m$1@nemesis.news.neostrada.pl... > Jak bez żmudnego przepatrywania tablic > znaleźć liczbę - liczby *całkowitą/e/* taką/ie/, > której/ych/ pierwiastek 2-go stopnia > da w rozwinięciu dziesiętnym po przecinku > cyfry w następującej po sobie kolejności: 83262? > Czyli: dana liczba całkowita do potęgi 1/2 daje > jakąś wartość taką, gdzie po przecinku znajdą się > cyfry w kolejności: 83262. > a,83262 > > > Stephanos Wg kalkulatora Windows: sqrt( 2500083263) = 50000,83262306... sqrt( 3600099916) = 60000,83262755... sqrt( 4900116568) = 70000,83262361... sqrt( 490001165669) = 700000,83262021... Maciek
Re: Znaleźć bez użycia tablic
Author: EMET
Date: Mon, 29 Mar 2010 10:48
Date: Mon, 29 Mar 2010 10:48
34 lines
2175 bytes
2175 bytes
Użytkownik "Maciek" <maciek@elkomtech.com.pl.nospam> napisał w wiadomości news:hopp3j$ifc$1@opal.futuro.pl... > > Użytkownik "EMET" <stephanos@poczta.onet.pl> napisał > w wiadomości news:honaav$g1m$1@nemesis.news.neostrada.pl... >> Jak bez żmudnego przepatrywania tablic >> znaleźć liczbę - liczby *całkowitą/e/* taką/ie/, >> której/ych/ pierwiastek 2-go stopnia >> da w rozwinięciu dziesiętnym po przecinku >> cyfry w następującej po sobie kolejności: 83262? >> Czyli: dana liczba całkowita do potęgi 1/2 daje >> jakąś wartość taką, gdzie po przecinku znajdą się >> cyfry w kolejności: 83262. >> a,83262 >> >> >> Stephanos > > > Wg kalkulatora Windows: > > sqrt( 2500083263) = 50000,83262306... > sqrt( 3600099916) = 60000,83262755... > sqrt( 4900116568) = 70000,83262361... > sqrt( 490001165669) = 700000,83262021... > > > Maciek Dziękuję Wam. Stephanos
Re: Znaleźć bez użycia tablic
Author: Maciek
Date: Mon, 29 Mar 2010 13:02
Date: Mon, 29 Mar 2010 13:02
66 lines
3157 bytes
3157 bytes
Użytkownik "Maciek" <maciek@elkomtech.com.pl.nospam>
napisał w wiadomości news:hopp3j$ifc$1@opal.futuro.pl...
>
> Użytkownik "EMET" <stephanos@poczta.onet.pl> napisał
> w wiadomości news:honaav$g1m$1@nemesis.news.neostrada.pl...
>> Jak bez żmudnego przepatrywania tablic
>> znaleźć liczbę - liczby *całkowitą/e/* taką/ie/,
>> której/ych/ pierwiastek 2-go stopnia
>> da w rozwinięciu dziesiętnym po przecinku
>> cyfry w następującej po sobie kolejności: 83262?
>> Czyli: dana liczba całkowita do potęgi 1/2 daje
>> jakąś wartość taką, gdzie po przecinku znajdą się
>> cyfry w kolejności: 83262.
>> a,83262
>>
>>
>> Stephanos
>
>
> Wg kalkulatora Windows:
>
> sqrt( 2500083263) = 50000,83262306...
> sqrt( 3600099916) = 60000,83262755...
> sqrt( 4900116568) = 70000,83262361...
> sqrt( 490001165669) = 700000,83262021...
Wyszło mi to tak.
Szukamy liczb naturalnych n,k:
sqrt(n) = k + 83262/100000 + epsilon
przy czym 0 \< epsilon < 1/10000.
To samo inaczej:
k + 83262/100000 \< sqrt(n) < k + 83262/100000 + 1/10000
i podnosząc stronami do kwadratu:
(k + 83262/100000)^2 \< n < (k + 83263/100000)^2 [*]
Wystarczającym (acz nie koniecznym) warunkiem na spełnienie
tej nierówności jest, by lewe i prawe wyrażenie różniły się
co najmniej o jedność:
(k + 83263/100000)^2 - (k + 83262/100000)^2 >/ 1
Zastępujemy różnicę kwadratów iloczynem różnicy i sumy:
((k + 83263/100000) - (k + 83262/100000)) *
((k + 83263/100000) + (k + 83262/100000)) >/ 1
(1/100000) * (2k + 166525/100000) >/ 1
2k + 166525/100000 >/ 100000
2k >/ 99998,33475
k >/ 49999,167375
No i mamy, że dla liczby naturalnej k = 50000 i każdej
większej istnieje (co najmniej jedna) liczba n, której
pierwiastek kwadratowy jest postaci zadanej i ma część
całkowitą k.
Ową n można znaleźć jako \ceil( (k + 83262/100000)^2 ).
OCZYWIŚCIE jest też wiele liczb mniejszych, spełniających
warunki zadania - lewa i prawa strona nierówności [*]
nie muszą różnić się aż o 1, aby jakaś liczba całkowita
pomiędzy nimi się znalazła...
Maciek
Re: Znaleźć bez użycia tablic
Author: Mirek
Date: Mon, 29 Mar 2010 13:31
Date: Mon, 29 Mar 2010 13:31
32 lines
2080 bytes
2080 bytes
On pon, 29 mar 2010 01:18:20 in article news:<1944d998-daf3-4ee8-b410-35eca32d15e9@q23g2000yqd.googlegroups.com>
bartekltg wrote:
> Bez zbytniego wysilania sie,
> x=1:1000000; s=sqrt(x);s=s-floor(s);find( s>=0.83262 & s<0.83263 )'
> liczy niecala sekunde.
>
> Jak to zrobic sprytniej?
> Odwroc zagadnienie.
> (a+r)^2 ma byc calkowita.
> czyli 2a*r+r^2 ma byc calkowita.
> gdzie r w przedziale [0.83262 0.83263)
[...]
Korzystając z tej zależności otrzymamy wyniki znacznie szybciej,
bo przejrzymy sqrt(n) liczb:
Oznaczmy: r1=0.83262;r2=0.83263;
a=1:10000; x=floor((a+r2).^2);
s=sqrt(x);s=s-floor(s);y2=x(find( s>=r1 & s<r2 ))
> Jest to prostrze, ale nie wiem jak to liczc, aby miec pewnosc,
> ze nie pominie sie zadnych liczb.
Ponieważ żadna z liczb x1=(a+r1)^2 i x2=(a+r2)^2 nie jest
całkowita, to warunkiem koniecznym (a może wystarczającym???)
jest
floor(x1)<floor(x2)
Nie chce mi się zastanawiać, ale wydaje mi się (z testów
numerycznych), że dla dużych wartości (granicy nie jestem
pewien) liczb "a" wszystkie wyniki spełniają warunki zadania.
Re: Znaleźć bez użycia tablic
Author: Boguś
Date: Mon, 29 Mar 2010 22:16
Date: Mon, 29 Mar 2010 22:16
51 lines
3214 bytes
3214 bytes
Mirek napisał:
>> Jak to zrobic sprytniej?
>> Odwroc zagadnienie.
>> (a+r)^2 ma byc calkowita.
>> czyli 2a*r+r^2 ma byc calkowita.
>> gdzie r w przedziale [0.83262 0.83263)
> [...]
> Korzystając z tej zależności otrzymamy wyniki znacznie szybciej,
> bo przejrzymy sqrt(n) liczb:
>
> Oznaczmy: r1=0.83262;r2=0.83263;
>
> a=1:10000; x=floor((a+r2).^2);
> s=sqrt(x);s=s-floor(s);y2=x(find( s>=r1& s<r2 ))
OK. Można trochę krócej napisać wykorzystując to co napisałeś poniżej.
//uwaga techniczna - dobrze obok algorytmu napisać w jakim programie to napisano//
> Ponieważ żadna z liczb x1=(a+r1)^2 i x2=(a+r2)^2 nie jest
> całkowita, to warunkiem koniecznym (a może wystarczającym???)
> jest
>
> floor(x1)<floor(x2)
Jest to warunek konieczny i wystarczający dla 'a' ale nie wystarczający dla 'n'.
Jeżeli oznaczymy n1=floor(x1) i n2=floor(x2) to wszystkie 'n w przedziale
{n1+1,n1+2,...,n2-1,n2) spełniają warunek
r1 < fraction(sqrt(n)) < r2
Najmniejsza wartość 'a' dla którego n2-n1=2 ->
a = 50253 n= (2525447693 , 2525447694)
Najmniejsza wartość 'a' dla którego n2-n1=3 ->
a = 100253 n= (10050830955 ,10050830956 , 10050830957)
dla porównania :najmniejsza wartość 'a' dla którego n2-n1=1 ->
a = 253 n= (64431)
i wszytko jasne !
> Nie chce mi się zastanawiać, ale wydaje mi się (z testów
> numerycznych), że dla dużych wartości (granicy nie jestem
> pewien) liczb "a" wszystkie wyniki spełniają warunki zadania.
Tak. To bardzo ładnie pokazał Maciek.
Od a=49785 wszystkie kolejne wartości dają stopniowo coraz więcej rozwiązań 'n'
( dla a=10^6 jest 20 wartości n)
Problem mało ciekawy , bo.. bardzo przewidywalny.
--
Boguś
Re: Znaleźć bez użycia tablic
Author: Mirek
Date: Tue, 30 Mar 2010 12:31
Date: Tue, 30 Mar 2010 12:31
35 lines
1912 bytes
1912 bytes
On wto, 30 mar 2010 00:16:23 in article news:<hor9ho$bi3$1@nemesis.news.neostrada.pl>
Boguś wrote:
>> Ponieważ żadna z liczb x1=(a+r1)^2 i x2=(a+r2)^2 nie jest
>> całkowita, to warunkiem koniecznym (a może wystarczającym???)
>> jest
>>
>> floor(x1)<floor(x2)
>
> Jest to warunek konieczny i wystarczający dla 'a' ale nie wystarczający dla 'n'.
> Jeżeli oznaczymy n1=floor(x1) i n2=floor(x2) to wszystkie 'n w przedziale
> {n1+1,n1+2,...,n2-1,n2) spełniają warunek
> r1 < fraction(sqrt(n)) < r2
>
> Najmniejsza wartość 'a' dla którego n2-n1=2 ->
> a = 50253 n= (2525447693 , 2525447694)
Masz rację
a n2-n1
[253, 1]
[50253, 2]
[100253, 3]
[150253, 4]
[200253, 5]
[250253, 6]
[300253, 7]
[350253, 8]
[400253, 9]
[450253, 10]
...
[950253, 20]
[1450253, 30]
[4950253, 100]
[9950253, 200]
Magia liczby 253 ;)
Re: Znaleźć bez użycia tablic
Author: Boguś
Date: Tue, 30 Mar 2010 14:46
Date: Tue, 30 Mar 2010 14:46
33 lines
2185 bytes
2185 bytes
Mirek napisał:
>> Najmniejsza wartość 'a' dla którego n2-n1=2 ->
>> a = 50253 n= (2525447693 , 2525447694)
>
> Masz rację
> a n2-n1
> [253, 1]
> [50253, 2]
> [100253, 3]
> [150253, 4]
> [4950253, 100]
> [9950253, 200]
> ...........
> Magia liczby 253 ;)
Nie. To zwykła matematyka ;)
Tak zachowuje się nie tylko 253 ale również wszystkie kolejne 486, 489, 722, 725 itd
bo
(a+r)^2 = a^2 + 2 a r + r^2 czyli szukamy całkowitej wartości
2 a r + r^2 dla r1 < r < r2 i znajdujemy dla a=253,486,...
a teraz powiększamy 'a' o 50000k
(a +50000 k + r)^2 = (a+5000k)^2 + 2r(a+50000k) + r^2 =
= (a+50000k)^2 + 100000 k r + 2a r + r^2
r1 i r2 były z dokładnością do 10^-5 i wszystko jasne ( lub dla niektórych prawie wszystko
bo są jeszcze niuanse)
--
Boguś
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads