Bagian IBagian IIBagian IIIPertimbangkan 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 inftyVolume 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 spoilerDari 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+1dan karena untuk angka Fibonacci
r=unlalu
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
yn2, 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+1anMembagi
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
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
tautannyaUbah 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
tautannyaBerikut adalah beberapa tugas dari tutorial
SICP mengenai
rasio emas.
TugasnyaLatihan 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:jadi itu
alpha= frac3 alpha+12 alpha+1,2 alpha2β2 alphaβ1=0dan 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+...+ sqrtcKursus 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+adi
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<10y0=0,01 di
10<c<100y0=0,001 di
100<c<1000dll.
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β fracxx20Mengganti 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β alphaSelanjutnya, menyamakan persamaan garis singgung ke nol dan mengekspresikan
x kita mendapatkan persamaannya
x=x0β fracf(x0)fβ²(x0)Sebaliknya
f(x0) pengganti
frac1x0β alphaSebaliknya
fβ²(x0) pengganti
β frac1x20Kami mendapatkan ekspresi
x=x0+( frac1x0β alpha)x20Memperluas kurung, kita dapatkan
x=x0+x0β alphax20Pengganti
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,5Mengganti 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 Heronxn+1= frac12(xn+ fracaxn)
def square_root(a,n):
codepad.orgPerhitungan akar kuadrat menggunakan fraksi lanjutan yang digunakan oleh
Rafael BombelliUntuk 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):
codepad.orgSecara 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 WolframAlpfaWolframAlpfa menghitung pecahan lanjutan menggunakan operasi pecahan lanjutan
Hitung nilainya
sqrt3tautannyaHitung nilainya
sqrt3+1tautannya 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.orgPada 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.