Tugas dari buku teks sekolah I

Bagian I
Bagian II
Bagian III

Pertimbangkan solusi algoritmik untuk masalah nomor 38 dari buku "Tugas untuk anak-anak dari 5 hingga 15 tahun"

Hitung jumlahnya:

 frac11 cdot2+ frac12 cdot3+ frac13 cdot4+...+ frac199 cdot100


(dengan kesalahan tidak lebih dari 1% dari jawabannya)

Di bawah ini adalah algoritma untuk menghitung jumlah parsial dari seri ini dalam Skema (Lisp) di drRacket (drRacket memungkinkan Anda untuk melakukan perhitungan dalam fraksi biasa):

#lang racket (define series_sum ( lambda (n) (if (= n 0) 0 (+ (/ 1 (* n (+ n 1))) (series_sum(- n 1))) ) ) ) (series_sum 10) (series_sum 100) (series_sum 1000) (series_sum 10000) (series_sum 100000) (series_sum 1000000) (define series_sum_1 ( lambda (n) (if (= n 0) 0 (+ (/ 1.0 (* n (+ n 1.0))) (series_sum_1(- n 1.0))) ) ) ) (series_sum_1 10) (series_sum_1 100) (series_sum_1 1000) (series_sum_1 10000) (series_sum_1 100000) (series_sum_1 1000000) 


Dua contoh terakhir drRacket dihitung dengan kesalahan



Program ini dapat dijalankan di ide online ideone.com dan codepad.org .

Algoritma yang sama dalam Python
 def series_sum(n): if n==0: return 0 else: return 1.0/(n*(n+1.0))+series_sum(n-1.0) print(series_sum(10)) print(series_sum(100)) 

Tautan ke ideone.com


Jika kita mempertimbangkan jumlah parsial dalam fraksi biasa, kita dapat melihat bahwa jumlah seri adalah

 fracnn+1



Biarkan saya mengingatkan Anda itu  lim fracnn+1= frac11+ frac1n= frac11=1 di n hingga infty

Volume kedua dari Kursus Kalkulus Diferensial dan Integral 363 (4) mempertimbangkan kasus umum

 sum frac1( alpha+n)( alpha+n+1)= frac1 alpha+1



Tugas dari kursus "Matematika untuk Pengembang":
Temukan jumlah anggota secara berurutan  frac2nβˆ’14n+5 berbaring di luar interval (1βˆ’ frac11000;1+ frac11000)



Mari kita beralih ke topik utama artikel.


Mari kita pertimbangkan satu lagi contoh dari buku masalah.
43 . Bilangan kelinci (Fibonacci), membentuk urutan (a1=1),1,3,5,8,13,21,34,..., di mana an+2=an+1+an untuk semua orang n=1,2,... . Temukan pembagi angka terbesar a100 dan a99 .

Jawaban: Dua angka Fibonacci yang berdekatan adalah coprime, mis.  gcd(un+1,un)=1
(gcd adalah pembagi umum terbesar, yaitu GCD).

"Bukti dari buku" Melampaui Halaman dari Buku Teks Matematika "[10-11]
Judul spoiler
Dari kesetaraan u n + 2 = u n + 1 + u n mengikuti itu  g c d ( u n + 2 , u n + 1 ) = g c d ( u n + 1 , u n )  . Membackup dengan cara ini, kita sampai  gcd(u2,u1)= gcd(1,1)=1 , dan karena itu dua angka Fibonacci yang berdekatan adalah koprime.

Buktikan itu  gcd(un+2,un+1)= gcd(un+1,un) buku ini tidak diberikan, tetapi menurut algoritma Euclidean
 gcd(un+2,un+1)= gcd(un+1,r)
dimana r - sisa pembagian un+2 pada un+1

dan karena untuk angka Fibonacci r=un
lalu
 gcd(un+2,un+1)= gcd(un+1,un)


Dalam tugas selanjutnya, Anda perlu menghitung rasio emas ,  frac sqrt5+12 sekitar1.618 . [Ini adalah rasio aspek kartu pos yang tetap sama saat memotong kotak yang sisi-sisinya adalah sisi yang lebih kecil dari kartu pos.]

53 . Untuk urutan angka Fibonacci an tugas 43 menemukan batas hubungan  fracan+1an sambil berjuang n hingga tak terbatas:

 fracan+1an=2, frac32, frac53, frac85, frac138, frac2113, frac3421.



Pertimbangkan segmen yang mewakili perbedaan dua anggota seri yang berdekatan  fracan+1an .

Bahkan anggota seri  fracan+1an mewakili urutan yang berkembang xn

 frac32, frac85, frac2113,...,



Anggota baris ganjil  fracan+1an mewakili urutan menurun yn

2, frac53, frac138,...,



Oleh lemma interval tertanam (Kursus kalkulus diferensial dan integral, 38)

c= limxn= limyn


Untuk baris kita pada suatu titik c kesetaraan yang adil  fracan+2an+1= fracan+1an

Membagi an+2=an+1+an pada an+1 kita mendapatkan persamaannya  fracan+2an+1=1+ fracanan+1 .
Dengan mengganti  fracan+2an+1=x, fracanan+1= frac1x kita mendapatkan persamaan kuadratik x=1+ frac1x .

Jika dalam program geogebra kita menghubungkan titik 2 dan  frac32 ,  frac32 dan  frac53 ,  frac53 dan  frac85 dll. - dapatkan sosok yang mirip diri sendiri

Sebagai perbandingan




Secara umum, ada algoritma standar untuk menghitung angka Fibonacci dalam Python.
Algoritma ini tersedia di Python.org
 def fib(n): a, b = 0, 1 while a < n: print(a) a, b = b, a+b fib(100) 

Anda dapat memeriksa tautannya
Ubah algoritma ini sehingga mencetak perkiraan dengan rasio emas. Untuk dua angka yang berdekatan a dan b, kami akan membagi jumlah a + b dengan b
 def fib(n): a, b = 0.0 , 1.0 while a < n: print((a+b)/b) a, b = b, a+b fib(100) 

Anda dapat memeriksa tautannya

Berikut adalah beberapa tugas dari tutorial SICP mengenai rasio emas.
Tugasnya
Latihan 1.13.
Buktikan bahwa Fib (n) adalah bilangan bulat terdekat  varphin/ sqrt5 dimana  varphi=(1+ sqrt5)/2 .

Latihan 1.35.
Tunjukkan bahwa rasio emas  varphi (bagian 1.2.2) adalah titik transformasi tetap x hingga1+1/x , dan gunakan fakta ini untuk menghitung  varphi menggunakan prosedur titik tetap.

Latihan 1.37.
... Tetapkan prosedur cont-frac sehingga perhitungan (cont-frac ndk) memberikan nilai k - Fraksi lanjutan terbatas hingga fraksi. Uji prosedur Anda dengan menghitung perkiraan menjadi 1 / Ο† dengan
 (cont-frac (lambda (i) 1.0) (lambda (i) 1.0) k) 

untuk nilai sekuensial k .


Contoh berikut dari buku tugas "Tugas untuk anak-anak dari 5 hingga 15 tahun"
54 . Hitung fraksi lanjutan tak hingga

1 + \ frac {1} {2 + \ frac {1} {1+ \ frac {1} {2+ \ frac {1} {1+ \ frac {1} {2 + ...}}}}}}



UPD Pertimbangkan persamaannya

 alpha=1+ frac12+ frac1 alpha


Menurut Teorema 236 dan 235 dari buku "Teori Angka":

 alpha= fracP1 alpha+P0Q1 alpha+Q0


Kami menyusun tabel nilai Pn dan Qn di n=0,1:

12
P13
Q12


jadi itu  alpha= frac3 alpha+12 alpha+1,2 alpha2βˆ’2 alphaβˆ’1=0

dan sejak itu  alpha>0, lalu

 alpha= frac1+ sqrt32


Pertimbangkan masalah dari buku β€œDi balik halaman buku teks matematika” [10-11]
4 . Tunjukkan nomor itu  sqrt1+ sqrt1+ sqrt1+... sama dengan jumlahnya  varphi mendefinisikan rasio emas.

Pertimbangkan pilihannya xn= sqrtc+ sqrtc+...+ sqrtc
Kursus kalkulus diferensial dan integral, 35 (2)
Dengan cara ini xn+1 diperoleh dari xn sesuai dengan formula

xn+1= sqrtc+xn


... Dengan teorema utama, opsi xn memiliki batas hingga a . Untuk menentukannya, kami melewati batas kesetaraan

x2n+1=c+xn;


Kami mendapatkan sedemikian rupa sehingga a memenuhi persamaan kuadrat

a2=c+a


Persamaan ini memiliki akar tanda yang berbeda; tetapi batas yang menarik bagi kita a tidak boleh negatif, karena itu, sama dengan persis akar positif:

a= frac sqrt4c+1+12



Dari mana kita dapat menyimpulkan bahwa "rasio emas" adalah solusi untuk persamaan a2=c+a
di c=1 .


Selanjutnya, dalam Kursus Kalkulus Diferensial dan Integral, 35 (3), sebuah algoritma untuk menghitung angka terbalik dianggap
Biarkan c Apakah ada angka positif, dan cantumkan xn=cyn . Relasi rekursi yang tertulis di atas akan digantikan oleh:

yn+1=yn(2βˆ’cyn)


Mengambil nilai awal y0 dalam kondisi: 0<y0< frac1c kita dapat itu yn meningkat secara monoton, akan cenderung  frac1c . Menurut skema ini, pada mesin hitung, angka terbalik dihitung c .


Algoritma perhitungan angka terbalik c dalam Python:
( Ideone.com dan codepad.org )
 def reciprocal(c,y0,n): arr=[] for i in range(n): arr.append(y0) y0=y0*(2-c*y0) return arr 

Fungsi timbal-balik mengambil angka sebagai input c nilai awal y0 , jumlah iterasi n dan mengembalikan array "perkiraan" ke nomor tersebut  frac1c .
y0=0,1 di c<10
y0=0,01 di 10<c<100
y0=0,001 di 100<c<1000
dll.
Contoh bagaimana fungsi resiprokal bekerja dengan beragam c

 >>> reciprocal(3,0.1,10) 

[0,1, 0,17, 0,2533, 0,31411733000000003, 0,3322255689810133, 0,3333296519077525,
0.3333333332926746, 0.3333333333333333337, 0.33333333333333337, 0.33333333333333337]

 >>> reciprocal(8,0.1,10) 

[0,1, 0,12, 0,1248, 0,12499968, 0,1249999999991808, 0,125, 0,125, 0,125, 0,125, 0,125, 0,125]

 >>> reciprocal(5,0.1,10) 

[0,1, 0,15000000000000002, 0,1875000000000000003, 0,19921875000000003, 0,19999694824218753, 0,1999999999534339, 0,2000000990000000004, 0,19999999999999998,
0,19999999999999998, 0,19999999999999998]

Interpretasi geometris


Mari kita coba menggunakan metode tangen untuk memperkirakan angka terbalik.
Garis singgung y=fβ€²(x0)(xβˆ’x0)+f(x0) berfungsi grafik y= frac1x diungkapkan oleh rumus y= frac2x0βˆ’ fracxx20

Mengganti Angka 1,2,3,4,... bukannya x0 kita memperoleh persamaan garis singgung

y=2βˆ’x


y=1βˆ’ fracx4


y= frac23βˆ’ fracx9


y= frac12βˆ’ fracx16


Buat grafik ini


Jika Anda memindahkan hiperbola ke bawah  alpha , lalu melintasi sumbu absis pada titik tersebut  frac1 alpha .
Persamaan tangen dikonversi menjadi y= frac2x0βˆ’ fracxx20βˆ’ alpha
Selanjutnya, menyamakan persamaan garis singgung ke nol dan mengekspresikan x kita mendapatkan persamaannya x=x0βˆ’ fracf(x0)fβ€²(x0)

Sebaliknya f(x0) pengganti  frac1x0βˆ’ alpha
Sebaliknya fβ€²(x0) pengganti βˆ’ frac1x20

Kami mendapatkan ekspresi x=x0+( frac1x0βˆ’ alpha)x20
Memperluas kurung, kita dapatkan x=x0+x0βˆ’ alphax20

Pengganti 0,1 ke dalam persamaan x=x0(2βˆ’ alphax0) dan lihat nilai apa yang akan β€œdijalankan” x di  alpha=2 kita dapatkan 0,1,0,18,0,29,0,42,0,49,0,5

Mengganti nilai-nilai ini dalam persamaan y= frac2x0βˆ’ fracxx20βˆ’2 kami langsung

y=0.111βˆ’ fracx0.897


y=0.222βˆ’ fracx0.81


y=0,816βˆ’ fracx0,504


y=0.857βˆ’ fracx0.49


y=1.5βˆ’ fracx0.326


y=2βˆ’ fracx0,25





Ekstraksi akar kuadrat


Kembali ke ekspresi irasional, kami mempertimbangkan metode berulang mengekstraksi akar kuadrat.
Kami akan menulis algoritma menggunakan metode berulang Heron

xn+1= frac12(xn+ fracaxn)


 def square_root(a,n): # a -  , n -   x0=1 #    1 arr=[] for i in range(n): arr.append(x0) #      x0=0.5*(x0+a/x0) #      return arr print square_root(2,10) 

codepad.org

Perhitungan akar kuadrat menggunakan fraksi lanjutan yang digunakan oleh Rafael Bombelli

Untuk menemukan nilainya  sqrtn , pertama-tama kita mendefinisikan seluruh perkiraannya:  sqrtn=a pmr dimana 0<r<1 . Lalu n=(a pmr)2=a2 pm2ar+r2 . Dari sini mudah untuk menyimpulkan itu r= frac|nβˆ’a2|2a pmr . Mengganti ekspresi yang dihasilkan dalam rumus  sqrtn=a pmr , kami mendapatkan ekspansi fraksi lanjutan:

a pm frac|na2|2a pm frac|na2|2a pm frac|na2|2a pm cdots




Jadi, kita dapat menulis algoritma ekstraksi akar kuadrat menggunakan dekomposisi menjadi fraksi lanjutan
 def square_root(n,a,n_count): # n- , a -    x0=a #    a arr=[] for i in range(n_count): #       a arr.append(x0-a) #  a x0=2*a+(na*a)/x0 return arr print square_root(2.0,1.0,10) 

codepad.org

Secara umum, bilangan real dan kompleks, serta fungsi dari satu atau lebih variabel, dapat berupa pembilang dan penyebut pribadi.
Metode mengekstraksi bagian bilangan bulat memungkinkan seseorang untuk mewakili bilangan irasional dalam bentuk fraksi lanjutan tak hingga dengan unit dalam pembilang (pembilang sering sama dengan kesatuan).
Berikut adalah contoh ekspansi fraksional lanjutan dari angka  sqrt5 dari buku "Aljabar"

 sqrt5βˆ’2= frac( sqrt5βˆ’2)( sqrt5+2) sqrt5+2= frac1 sqrt5+2



Dengan cara ini  sqrt5=2+ frac1 sqrt5+2

Pilih bagian integer dari nomor tersebut  sqrt5+2:E( sqrt5+2)=4 . Berarti  sqrt5+2 dapat direpresentasikan sebagai 4+ alpha . Jelas itu  alpha= sqrt5+2βˆ’4= sqrt5βˆ’2 oleh karena itu  sqrt5+2=4+ sqrt5+2 . Sekali lagi, kami menghancurkan irasionalitas dalam pembilang dari istilah kedua:

 sqrt5βˆ’2= frac1 sqrt5+2


Hasilnya adalah:

 sqrt5=2+ frac14+ frac1 sqrt5+2


Mari kita lakukan langkah serupa lainnya:

 sqrt5=2+ frac14+ frac14+ frac1 sqrt5+2


Sangat mudah untuk melihat bahwa proses mengisolasi seluruh bagian dan pembentukan fraksi lanjutan dalam contoh ini tidak berakhir. Di setiap penyebut baru akan muncul 4 dan istilah  sqrt5βˆ’2 . Karena itu, jelas itu  sqrt5 direpresentasikan sebagai fraksi lanjutan tanpa batas:

 sqrt5=[2,4,4,4,...]




Hipotesis


Jika d in mathbbN, sqrtd notin mathbbN kemudian fraksi lanjutan dari angka tersebut  sqrtd+[ sqrtd] murni periodik.
Evarist Galois membuktikan hipotesis ini.

Yaitu jika ke bagian non-periodik fraksi [1;2,2,2,...]= sqrt2 tambahkan seluruh bagian [ sqrt2]=1 maka kita mendapatkan pecahan murni periodik [2,2,2,...] .

 sqrt3=[1;1,2,...];
 sqrt3+1=[2,1,...]

 sqrt5=[2;4,4,4,...];
 sqrt5+2=[4,4,4,...]

 sqrt6=[2;2,4,...];
 sqrt6+2=[4,2,...]

 sqrt13=[3;1,1,1,1,6,...];
 sqrt13+3=[6,1,1,1,1,1,...]

Cloud Computing WolframAlpfa
WolframAlpfa menghitung pecahan lanjutan menggunakan operasi pecahan lanjutan
Hitung nilainya  sqrt3
tautannya
Hitung nilainya  sqrt3+1
tautannya

Jika di root dekomposisi sesuai dengan metode Bombelli

\ sqrt {n} = a \ pm {\ frac {| na ^ {2} |} {2a \ pm {\ frac {| na ^ {2} |} {2a \ pm {\ frac {| na ^ { 2} |} {2a \ pm \ cdots}}}}}}}


tambahkan ke istilah pertama a , kami mendapatkan fraksi murni periodik

\ sqrt {n} + a = 2a \ pm {\ frac {| na ^ {2} |} {2a \ pm {\ frac {| na ^ {2} |} {2a \ pm {\ frac {| na ^ {2} |} {2a \ pm \ cdots}}}}}}}



Tetap membawa fraksi ke bentuk yang lebih akrab (dengan unit dalam pembilang).
Bagilah pembilang dan penyebut pecahan dengan |nβˆ’a2| kami mendapatkan ekspresi

\ sqrt {n} + a = 2 a \ pm {\ frac {1} {\ frac {2a} {| na ^ {2} |} \ pm {\ frac {1} {2a \ pm {\ frac { 1} {\ frac {2a} {| na ^ {2} |} \ pm \ cdots}}}}}}}


Dengan cara ini

 sqrt2+1=2+ frac1 frac21+ frac12+ frac1 frac21++...=[2,2,2,...]


 sqrt3+1=2+ frac1 frac22+ frac12+ frac1 frac22++...=[2,1,...]


 sqrt5+2=4+ frac1 frac41+ frac14+ frac1 frac41++...=[4,4,4,...]


 sqrt6+2=4+ frac1 frac42+ frac14+ frac1 frac42++...=[4,2,...]


 sqrt13+3=6+ frac1 frac64+ frac16+ frac1 frac64++...=[6, frac32,...]


Kami akan menulis sebuah program yang menghitung perkiraan fraksi lanjutan [6, frac32,...]
 #lang racket (define continued_fraction ( lambda (n) (if (= n 0) 1 (+ 6 (/ 1 (+ 3/2 (/ 1 (continued_fraction(- n 1)))))) ))) (continued_fraction 4) 

codepad.org
Pada langkah keempat kita dapatkan 6 frac38186305 yang sama 6,60555114... sementara  sqrt13+3 sekitar6.60555127 .




PS Mengatasi masalah (β€œMasalah untuk anak-anak berusia 5 hingga 15 tahun”)
27 . Buktikan bahwa sisa pembagian angka 2pβˆ’1 perdana yang aneh
p sama dengan 1
(contoh: 22=3a+1,24=5b+1,26=7c+1,210βˆ’1=1023=10 cdot93) .
Masalah ini dipertimbangkan dalam artikel Amazing Adventures of Lanjutan Fraksi dari majalah Quantum.

Buku:
"Tugas untuk anak-anak dari 5 hingga 15 tahun" V. I. Arnold.
"Kursus kalkulus diferensial dan integral" G. M. Fichtenholtz
"Nomor Teori" A. A. Buchstab
"Di balik halaman buku teks matematika" N. Ya. Vilenkin, L. P. Shibasov, Z. F. Shibasova
"Aljabar" N. Ya. Vilenkin, R. S. Guter, S. I. Schwarzburd
Aritmatika Digital Ercegovac Milos D., Lang Tomas
"Struktur dan interpretasi program komputer" Harold Abelson, Gerald Sassman

Lihat juga
Artikel "Pada satu tugas yang tidak lagi ditawarkan saat wawancara."
Blog Spice Recruitment's Blog memposting tugas wawancara ke berbagai perusahaan.
Tugas untuk wawancara di Yandex.
Dalam video ini, A. Savvateev memecahkan masalah dengan wawancara di Tesla.

Source: https://habr.com/ru/post/id419237/


All Articles