المهام من كتاب المدرسة الأول

الجزء الأول
الجزء الثاني
الجزء الثالث

خذ بعين الاعتبار الحل الخوارزمي للمشكلة رقم 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



المهمة من دورة "الرياضيات للمطورين":
أوجد عدد الأعضاء في تسلسل  frac2n14n+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 يمثل تسلسل تنازلي yn

2، 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:

12
ص13
س12


لذلك  alpha= frac3 alpha+12 alpha+1،2 alpha22 alpha1=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(2cyn)


أخذ القيمة الأولية 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<10
y0=0.01دولا في 10<c<100
y0=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)(xx0)+f(x0) لتعمل الرسم البياني y= frac1x يتم التعبير عنها بواسطة الصيغة y= frac2x0 fracxx20

استبدال الأرقام 1،2،3،4 دولار ... $ بدلا من x0 نحصل على معادلات المماس

y=2x


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

استبدل 0.1 دولار في المعادلة x=x0(2 alphax0) وانظر ما هي القيم التي "ستمر بها" x في  alpha=2 نحصل 0.1 دولار ، 0.18 ، 0.29 ، 0.42 ، 0.49 ، 0.5 دولار

استبدال هذه القيم في المعادلة y= frac2x0 fracxx202 نحصل مباشرة

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): # 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

حساب الجذر التربيعي باستخدام الكسور المستمرة التي يستخدمها رافائيل بومبيلي

للعثور على القيمة  sqrtn ، أولاً نحدد تقريبه بالكامل:  sqrtn=a pmr أين 0<r<1 . ثم n=(a pmr)2=a2 pm2ar+r2 . من السهل استنتاج ذلك r= frac|na2|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): # 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

بشكل عام ، يمكن أن تكون الأرقام الحقيقية والمعقدة ، بالإضافة إلى وظائف متغير واحد أو أكثر ، بسط ومقام خاص.
تسمح طريقة استخلاص الجزء الصحيح للمرء بتمثيل عدد غير منطقي في شكل كسر مستمر لا نهائي مع وحدات في البسط (البسط المتكرر يساوي الوحدة).
فيما يلي مثال على التوسع الجزئي المستمر لرقم  sqrt5 من كتاب الجبر

 sqrt52= frac( sqrt52)( sqrt5+2) sqrt5+2= frac1 sqrt5+2دولا



بهذه الطريقة  sqrt5=2+ frac1 sqrt5+2

حدد الجزء الصحيح من الرقم  sqrt5+2:E( sqrt5+2)=4 . يعني  sqrt5+2 يمكن تمثيله كـ 4+ alpha . من الواضح أن  alpha= sqrt5+24= sqrt52 لذلك  sqrt5+2=4+ sqrt5+2 . مرة أخرى ، ندمر اللاعقلانية في بسط المصطلح الثاني:

 sqrt52= frac1 sqrt5+2


والنتيجة هي:

 sqrt5=2+ frac14+ frac1 sqrt5+2


لنقم بخطوة أخرى مماثلة:

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


من السهل أن نرى أن عملية عزل الجزء بأكمله وتشكيل جزء مستمر في هذا المثال لا نهاية لها. في كل قاسم جديد سيظهر 4 والمدة  sqrt52 . لذلك ، من الواضح أن  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}}}}}}}



يبقى إحضار الكسر إلى شكل مألوف أكثر (مع وحدات في البسط).
اقسم البسط ومقام الكسر على |na2| نحصل على التعبير

 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 . يثبت أن ما تبقى من قسمة عدد 2p1 رئيس غريبة
p يساوي 1
(أمثلة: 22=3a+1،24=5b+1،26=7c+1،2101=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.

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


All Articles