الجزء الأولالجزء الثانيالجزء الثالثخذ بعين الاعتبار الحل الخوارزمي للمشكلة رقم
38 من كتاب "مهام للأطفال من 5 إلى 15 سنة"
احسب المبلغ:
f r a c 1 1 c d o t 2 + f r a c 1 2 c d o t 3 + f r a c 1 3 c d o t 4 + . . . + f r a c 1 99 c d o t 100
(مع خطأ لا يزيد عن 1 ٪ من الإجابة)
فيما يلي خوارزمية لحساب مبالغ جزئية من هذه السلسلة في
مخطط (Lisp) في
drRacket (يسمح لك drRacket بإجراء حسابات في الكسور العادية):
#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)
تم حساب المثالين الأخيرين drRacket مع وجود خطأ

يمكن تشغيل هذا البرنامج على الإنترنت
ideone.com و
codepad.org .
نفس الخوارزمية في بيثون 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))
رابط إلى ideone.com
إذا أخذنا في الاعتبار المبالغ الجزئية في الكسور العادية ، يمكننا أن نرى أن مجموع السلسلة هو
f r a c n n + 1
دعني أذكرك بذلك
lim fracnn+1= frac11+ frac1n= frac11=1 في
n to inftyينظر المجلد الثاني من دورة حساب التفاضل والتكامل 363 (4) في الحالة العامة
sum frac1( alpha+n)( alpha+n+1)= frac1 alpha+1
المهمة من
دورة "الرياضيات للمطورين":
أوجد عدد الأعضاء في تسلسل
frac2n−14n+5 تقع خارج الفاصل الزمني
(1− frac11000؛1+ frac11000)دعنا ننتقل إلى الموضوع الرئيسي للمقال.
دعونا نفكر في مثال آخر من كتاب مشكلة.
43 . أعداد الأرانب (فيبوناتشي) ، تشكل تسلسلاً
(a1=1)،1،3،5،8،13،21،34،...، فيه
an+2=an+1+an للجميع
n=1،2،... . ابحث عن أكبر القاسم المشترك للأرقام
a100 و
a99 .
الجواب: رقمان فيبوناتشي متجاوران هما نظام مشترك ، أي
gcd(un+1،un)=1(gcd هو أكبر القاسم المشترك ، أي GCD).
"دليل من كتاب" ما وراء صفحات كتاب الرياضيات "[10-11]
عنوان المفسدمن المساواة u n + 2 = u n + 1 + u n يتبع ذلك g c d ( u n + 2 ، u n + 1 ) = g c d ( u n + 1 ، u n ) . النسخ الاحتياطي بهذه الطريقة ، نأتي إلى gcd(u2،u1)= gcd(1،1)=1 وبالتالي هناك رقمان متجاوران لفيبوناتشي متناغمان.
والدليل على ذلك
gcd(un+2،un+1)= gcd(un+1،un) لم يتم إعطاء الكتاب ، ولكن وفقًا للخوارزمية الإقليدية
gcd(un+2،un+1)= gcd(un+1،r)أين
r - ما تبقى من القسمة
un+2 على
un+1ومنذ ذلك الحين بالنسبة لأرقام فيبوناتشي
r=unثم
gcd(un+2،un+1)= gcd(un+1،un) في المهمة التالية ، تحتاج إلى حساب
النسبة الذهبية ،
frac sqrt5+12 حوالي1،618 . [هذه هي نسبة العرض إلى الارتفاع للبطاقة البريدية التي تظل متشابهة عند قطع مربع يكون جانبه هو الجانب الأصغر من البطاقة البريدية.]
53 . لتسلسل أرقام فيبوناتشي
an المهام 43 تجد حد العلاقة
fracan+1an أثناء السعي
n إلى ما لا نهاية:
fracan+1an=2، frac32، frac53، frac85، frac138، frac2113، frac3421.
ضع في اعتبارك الأجزاء التي تمثل الاختلافات بين عضوين متجاورين في السلسلة
fracan+1an .

حتى أعضاء المسلسل
fracan+1an تمثل تسلسل متزايد
xn frac32، frac85، frac2113،...،
أعضاء الصف الفردية
fracan+1an يمثل تسلسل تنازلي
yn2، frac53، frac138،...،
بواسطة ليما الفاصل المضمن (مسار حساب التفاضل والتكامل ، 38)
c= limxn= limyn
لصفنا في نقطة
c مساواة عادلة
fracan+2an+1= fracan+1anالانقسام
an+2=an+1+an على
an+1 نحصل على المعادلة
fracan+2an+1=1+ fracanan+1 .
عن طريق الاستبدال
fracan+2an+1=x، fracanan+1= frac1x نحصل على
المعادلة التربيعية x=1+ frac1x .
إذا
قمنا في برنامج
Geogebra بتوصيل النقاط 2 و
frac32 ،
frac32 و
frac53 ،
frac53 و
frac85 الخ. - احصل على شخصية
متشابهة
بشكل عام ، هناك خوارزمية قياسية لحساب أرقام فيبوناتشي في بايثون.
هذه الخوارزمية متاحة على
Python.org def fib(n): a, b = 0, 1 while a < n: print(a) a, b = b, a+b fib(100)
يمكنك التحقق من
الرابطقم بتغيير هذه الخوارزمية بحيث تطبع تقريبًا إلى النسبة الذهبية. بالنسبة للرقمين المتجاورين a و b ، سنقسم المجموع a + b على b
def fib(n): a, b = 0.0 , 1.0 while a < n: print((a+b)/b) a, b = b, a+b fib(100)
يمكنك التحقق من
الرابطفيما يلي بعض المهام من البرنامج التعليمي لـ
SICP بشأن
النسبة الذهبية.
المهامتمرين 1.13.برهن أن
فيب (ن) هو العدد الصحيح الأقرب إلى
varphin/ sqrt5 أين
varphi=(1+ sqrt5)/2 .
تمرين 1.35.تبين أن النسبة الذهبية
varphi (القسم 1.2.2) هو نقطة تحول ثابتة
x إلى1+1/x ، واستخدم هذه الحقيقة لحساب
varphi باستخدام إجراء النقطة الثابتة.
تمرين 1.37.... حدد إجراء cont-frac بحيث يعطي الحساب (cont-frac ndk) القيمة
k -الجزء الأولي المستمر الكسر. اختبر الإجراء الخاص بك عن طريق حساب التقريب إلى 1 / φ مع
(cont-frac (lambda (i) 1.0) (lambda (i) 1.0) k)
للقيم التسلسلية
k .
المثال التالي من كتاب المهام "مهام للأطفال من 5 إلى 15 سنة"
54 . احسب الكسر المستمر اللانهائي
1+ frac12+ frac11+ frac12+ frac11+ frac12+...
UPD فكر في المعادلة
alpha=1+ frac12+ frac1 alpha
وفقًا للنظريات 236 و 235 من كتاب "نظرية الأعداد":
alpha= fracP1 alpha+P0Q1 alpha+Q0
نقوم بتكوين جدول القيم
Pn و
Qn في
n=0،1:لذلك
alpha= frac3 alpha+12 alpha+1،2 alpha2−2 alpha−1=0ومنذ ذلك الحين
alpha>0، ثم
alpha= frac1+ sqrt32
تأمل المشكلة من كتاب "خلف صفحات كتاب الرياضيات" [10-11]
4 . اعرض هذا الرقم
sqrt1+ sqrt1+ sqrt1+... يساوي الرقم
varphi تحديد النسبة الذهبية.
فكر في
الخيار xn= sqrtc+ sqrtc+...+ sqrtcمسار حساب التفاضل والتكامل ، 35 (2)
بهذه الطريقة xn+1 تم الحصول عليها من xn وفقًا للصيغة
xn+1= sqrtc+xn
... حسب النظرية الرئيسية ، الخيارات xn لديها حد محدود a . لتحديد ذلك ، نمر إلى الحد الأقصى في المساواة
x2n+1=c+xn؛
نحصل على مثل هذه الطريقة a يفي بالمعادلة التربيعية
a2=c+a
هذه المعادلة لها جذور علامات مختلفة. لكن الحد الذي يهمنا a لا يمكن أن تكون سالبة ، وبالتالي فهي تساوي الجذر الموجب:
a= frac sqrt4c+1+12
يمكن من خلاله استنتاج أن "النسبة الذهبية" هي حل المعادلة
a2=c+aفي
c=1 .
علاوة على ذلك ، في مسار حساب التفاضل والتكامل ، 35 (3) ، يتم اعتبار خوارزمية لحساب الرقم المعكوس
دع c هو أي رقم موجب ، ويوضع xn=cyn . سيتم استبدال علاقة العودية المكتوبة أعلاه بما يلي:
yn+1=yn(2−cyn)
أخذ القيمة الأولية y0 تحت الشرط: 0<y0< frac1c نحصل على ذلك yn زيادة رتيبة ، سوف تميل إلى frac1c . وفقًا لهذا المخطط ، يتم حساب الرقم المعكوس في آلات العد c .
خوارزمية حساب الرقم المعكوس
c في بيثون:
(
Ideone.com و
codepad.org )
def reciprocal(c,y0,n): arr=[] for i in range(n): arr.append(y0) y0=y0*(2-c*y0) return arr
تأخذ الدالة التبادلية رقمًا كمدخل
c القيمة الأولية
y0 عدد التكرارات
n ويعيد مصفوفة "تقريب" إلى الرقم
frac1c .
y0=0.1 في
c<10y0=0.01دولا في
10<c<100y0=0.001 في
100<c<1000الخ.
أمثلة لكيفية عمل الوظيفة المتبادلة مع مختلف
c >>> reciprocal(3,0.1,10)
[0.1 ، 0.17 ، 0.2533 ، 0.31411733000000003 ، 0.3322255689810133 ، 0.3333296519077525 ،
0.3333333332926746، 0.3333333333333333337، 0.3333333333333333337، 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]
>>> reciprocal(5,0.1,10)
[0.1 ، 0.15000000000000002 ، 0.18750000000000003 ، 0.19921875000000003 ، 0.19999694824218753 ، 0.1999999999534349 ، 0.20000000000000004 ، 0.19999999999999998 ،
0.19999999999999998، 0.19999999999999998]
التفسير الهندسي
دعونا نحاول استخدام طريقة المماس لتقريب الرقم المعكوس.
المماس
y=f′(x0)(x−x0)+f(x0) لتعمل الرسم البياني
y= frac1x يتم التعبير عنها بواسطة الصيغة
y= frac2x0− fracxx20استبدال الأرقام

بدلا من
x0 نحصل على معادلات المماس
y=2−x
y=1− fracx4
y= frac23− fracx9
y= frac12− fracx16
قم ببناء هذه الرسوم البيانية

إذا قمت بنقلها إلى أسفل
alpha ، ثم يعبر محور الخراج عند النقطة
frac1 alpha .
يتم تحويل معادلة الظل إلى
y= frac2x0− fracxx20− alphaعلاوة على ذلك ، معادلة معادلة المماس بالصفر والتعبير
x نحصل على المعادلة
x=x0− fracf(x0)f′(x0)بدلاً من ذلك
f(x0) بديل
frac1x0− alphaبدلاً من ذلك
f′(x0) بديل
− frac1x20نحصل على التعبير
x=x0+( frac1x0− alpha)x20توسيع الأقواس ، نحصل
x=x0+x0− alphax20استبدل

في المعادلة
x=x0(2− alphax0) وانظر ما هي القيم التي "ستمر بها"
x في
alpha=2 نحصل

استبدال هذه القيم في المعادلة
y= frac2x0− fracxx20−2 نحصل مباشرة
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

استخراج الجذر التربيعي
بالعودة إلى التعبيرات غير العقلانية ، نعتبر طريقة تكرارية لاستخراج الجذر التربيعي.
سنكتب خوارزمية باستخدام
طريقة هيرون التكراريةxn+1= frac12(xn+ fracaxn)
def square_root(a,n):
codepad.orgحساب الجذر التربيعي باستخدام الكسور المستمرة التي يستخدمها
رافائيل بومبيليللعثور على القيمة sqrtn ، أولاً نحدد تقريبه بالكامل: sqrtn=a pmr أين 0<r<1 . ثم n=(a pmr)2=a2 pm2ar+r2 . من السهل استنتاج ذلك r= frac|n−a2|2a pmr . استبدال التعبير الناتج في الصيغة sqrtn=a pmr ، نحصل على توسع كسر مستمر:
a pm frac|na2|2a pm frac|na2|2a pm frac|na2|2a pm cdots
لذا ، يمكننا كتابة خوارزمية استخلاص الجذر التربيعي باستخدام التحلل في جزء مستمر
def square_root(n,a,n_count):
codepad.orgبشكل عام ، يمكن أن تكون الأرقام الحقيقية والمعقدة ، بالإضافة إلى وظائف متغير واحد أو أكثر ، بسط ومقام خاص.
تسمح طريقة استخلاص الجزء الصحيح للمرء بتمثيل عدد غير منطقي في شكل كسر مستمر لا نهائي مع وحدات في البسط (البسط المتكرر يساوي الوحدة).
فيما يلي مثال على التوسع الجزئي المستمر لرقم
sqrt5 من كتاب الجبر
sqrt5−2= frac( sqrt5−2)( sqrt5+2) sqrt5+2= frac1 sqrt5+2دولا
بهذه الطريقة sqrt5=2+ frac1 sqrt5+2
حدد الجزء الصحيح من الرقم sqrt5+2:E( sqrt5+2)=4 . يعني sqrt5+2 يمكن تمثيله كـ 4+ alpha . من الواضح أن alpha= sqrt5+2−4= sqrt5−2 لذلك sqrt5+2=4+ sqrt5+2 . مرة أخرى ، ندمر اللاعقلانية في بسط المصطلح الثاني:
sqrt5−2= frac1 sqrt5+2
والنتيجة هي:
sqrt5=2+ frac14+ frac1 sqrt5+2
لنقم بخطوة أخرى مماثلة:
sqrt5=2+ frac14+ frac14+ frac1 sqrt5+2
من السهل أن نرى أن عملية عزل الجزء بأكمله وتشكيل جزء مستمر في هذا المثال لا نهاية لها. في كل قاسم جديد سيظهر 4 والمدة sqrt5−2 . لذلك ، من الواضح أن sqrt5 يمثل ككسر مستمر لانهائي:
sqrt5=[2،4،4،4،...]
الفرضية
إذا
d in mathbbN، sqrtd notin mathbbN ثم الجزء المستمر من الرقم
sqrtd+[ sqrtd] دورية بحتة.
أثبت
Evarist Galois هذه الفرضية.
على سبيل المثال إذا إلى الجزء غير الدوري من الكسر
[1؛2،2،2،...]= sqrt2 أضف الجزء كله
[ sqrt2]=1 ثم نحصل على جزء دوري بحت
[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،...]الحوسبة السحابية WolframAlpfaيحسب WolframAlpfa الكسور المستمرة باستخدام عملية الكسر المستمرة
احسب القيمة
sqrt3الرابطاحسب القيمة
sqrt3+1الرابط إذا كان في التحلل الجذري وفقا لطريقة بومبيلي
\ sqrt {n} = a \ pm {\ frac {| na ^ {2} |} {2a \ pm {\ frac {| na ^ {2} |} {2a \ pm {\ frac {| na ^ { 2} |} {2a \ pm \ cdots}}}}}}} دولا
أضف إلى الفصل الأول
a ، نحصل على جزء دوري بحت
\ sqrt {n} + a = 2a \ pm {\ frac {| na ^ {2} |} {2a \ pm {\ frac {| na ^ {2} |} {2a \ pm {\ frac {| na ^ {2} |} {2a \ pm \ cdots}}}}}}}
يبقى إحضار الكسر إلى شكل مألوف أكثر (مع وحدات في البسط).
اقسم البسط ومقام الكسر على
|n−a2| نحصل على التعبير
sqrtn+a=2a pm frac1 frac2a|na2| pm frac12a pm frac1 frac2a|na2| pm cdots
بهذه الطريقة
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،...]
سنكتب برنامجًا يحسب تقريب الكسر المستمر
[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في الخطوة الرابعة نحصل
6 frac38186305 وهو يساوي
6.60555114... بينما
sqrt13+3 تقريبًا6.60555127 .
PS حل المشكلة ("مشاكل للأطفال من 5 إلى 15 سنة")
27 . يثبت أن ما تبقى من قسمة عدد
2p−1 رئيس غريبة
p يساوي
1(أمثلة:
22=3a+1،24=5b+1،26=7c+1،210−1=1023=10 cdot93) .
يتم تناول هذه المشكلة في مقالة
Amazing Adventures of Continued Fractions of the Quantum magazine.
كتب:
"مهام للأطفال من 5 إلى 15 سنة" V. I. Arnold.
"مسار حساب التفاضل والتكامل" G.M Fichtenholtz
"نظرية العدد" A. A. Buchstab
"خلف صفحات كتاب الرياضيات" N.N. Vilenkin، L. P. Shibasov، Z. F. Shibasova
"Algebra" N. Ya. Vilenkin، R. S. Guter، S. I. Schwarzburd
الحساب الرقمي Ercegovac Milos D. ، Lang Tomas
"هيكل وتفسير برامج الكمبيوتر" هارولد أبيلسون ، جيرالد سسمان
انظر أيضًا
المقال "في مهمة واحدة لم تعد تُعرض في المقابلة".
مدونة Spice IT Recruitment تنشر مهام المقابلة في العديد من الشركات.
مهام المقابلات في Yandex.
في
هذا الفيديو ، يحل A. Savvateev المشاكل في المقابلات في Tesla.