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

للبساطة المتبادلة
M و
N نحصل على النمط:

في الإصدار الثنائي ، نحتفل بالمسار ليس بخط متقطع ، ولكننا نرسم الخلايا بالتناوب باللونين الأسود والأبيض (نقوم بتشكيل صفيف ثنائي ، ونضع 0 للأسود و 1 للأبيض في الخلية المقابلة):

قواعد انعكاس الحدود:

للبساطة المتبادلة
M و
N يمر المسار عبر كل خلية:

لمختلف M و Nالأمر الأكثر إثارة للدهشة حول هذه الأنماط هو أنه مختلف
M و
N اتضح نمط فريد من نوعه:





في المادة ، كما
M و
N ، نحن نستخدم أرقام فيبوناتشي بشكل رئيسي.
هنا يمكنك رسم أنماط للأرقام الأخرى (إحداثيات الماوس).
إذا كان لدى الأطراف مقسوم مشترك ، فإن الكرة تدخل الزاوية قبل أن تمر عبر كل خلية:

أنها مريحة للنظر في هذه القضية والبلياردو في مستطيل مع الجانبين
fracMGCD و
fracNGCD (GCD هي أكبر عامل مشترك):

قبل الانتقال ، املأ الجدول الذي اقترحه المستخدم
Captain1312 في
مقالته (سنقوم بتقسيم جوانب البلياردو إلى GCD).
(1،0) قليلا
لكل طاولة بلياردو
M و
N تأخذ قليلا مع الإحداثيات
(1،0) .

إذا
M هو مقسم
N - ثم قليلا مع الإحداثيات
(1،0) مفقود (
fracMGCD=1 ) في هذه الحالة ، نأخذ الشيء المقلوب مع الإحداثيات
(0،1) .
املأ الجدول. الأصل هو الزاوية اليسرى العليا. بواسطة
x - عرض البلياردو
M بواسطة
ذ - الطول
N . لكل البلياردو نحتفل قليلا
(1،0) ، أو قليلا مقلوب
(0،1) (سنعود إلى هذا الموضوع أدناه).

قليلا عن أرقام فيبوناتشييعرض الجدول الخطوط الناشئة من الزاوية اليسرى العليا. إذا كنت بناء مثل هذا الجدول لبعض الشيء مع الإحداثيات
(3،0) - يمكن رؤية هذه الخطوط بشكل أفضل:

هناك طريقة أصلية أخرى للحصول على هذه الخطوط.
لكل منهما
x و
ذ لو
ذ هو مقسم
x ، بناء سلسلة من أرقام فيبوناتشي:
F0=ذ؛F1=س؛Fn=Fn−1+Fn−2
وعلامة النقاط على الرسم البياني
(Fn،Fn−1) و
(Fn−1،Fn) :

تسلسل ثنائي
لماذا عكسنا بعض الشيء عند عرض البلياردو
M=1دولا ؟ للبساطة المتبادلة
M و
N يمر مسار الكرة عبر كل خلية. بين الجدران العليا واليسرى للبلياردو ، تمر الكرة في كل مرة بعدد من الخلايا.


البتات في العمود الأيسر هي البتات المقلوبة من الصف العلوي. نحن لا نأخذ الصفر بت - المسار يبدأ به:

بالإضافة إلى ذلك ، يمكننا أن نرمي بأمان كل ثانية من هذا التسلسل (بت
2n−1 - قليلا مقلوب
2n ):

حصلت على التسلسل

للبلياردو
(21،13)دولا . التسلسل فريد من نوعه للجميع.
M و
N .
مهما كان الارتفاع
N لم نأخذها - الكرة تسير دائمًا على طول المسار
2N بين اثنين من انعكاسات من الجدار العلوي. من الجدار العلوي ، تبدأ الحركة دائمًا بحرف "0" (خلية سوداء) وتنتهي بحرف "1" (خلية بيضاء):

في الواقع ، تسلسل (الذي أبرزنا أعلاه -

يظهر على أي جانب وصلت الكرة في: 1 - إذا حلقت الكرة في المنعكس ، وانعكست من الجدار الأيمن و 0 - إذا حلقت الكرة في المنعكس من الجدار الأيسر. في الصورة ، يتم تحديد مسار الكرة باللون الأسود إذا تحركت الكرة إلى اليمين والأبيض إذا تحركت إلى اليسار:

إنه مثير للاهتمامبمساعدة لعبة البلياردو ، يمكنك تقسيم رقمين في النظام الثنائي. في لحظة ملامسة الجدار العلوي أو السفلي ، نصلح اتجاه حركة الكرة. إذا تحركت الكرة إلى اليمين ، نكتب 0. إذا إلى اليسار ، نكتب 1. سنصلح كل منها
2n لمس الكرة.
أول لمسة من الجدار السفلي. تحركت الكرة إلى اليمين. ثابت 0
اللمسة الثانية هي الجدار العلوي. انتقلت الكرة إلى اليسار. ثابت 1
اللمسة الرابعة هي الجدار العلوي. تحركت الكرة إلى اليمين. ثابت 0
اللمسة الثامنة على الجدار العلوي. تحركت الكرة إلى اليمين. ثابت 0
الخ.
حصلت: 0.1001111001111001111 ... هو تدوين ثنائي للكسر
frac1321 .

هذا التسلسل (

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

إذا كانت البتة المقابلة = 1 - نبدأ في التحرك إلى اليسار ، مع تحديد المسار من خلال الخلية. إذا بت = 0 - انتقل إلى اليمين.

في هذه الحالة ، لا تنس أمر الصفر:

GIF:

لقد حصلنا على النموذج الأصلي (ونظرنا إلى ما وراء الحد السفلي):
البرنامج النصي لتصور تسلسل ثنائي
يمكننا بناء هذا التسلسل باستخدام بقية التقسيم.
البلياردو أحادي البعد
على المحور العددي
X خذ نقطتين:
0 و
M .

الانتقال من نقطة إلى أخرى ، وقياس المسافة
N :

تميزت النقطة. نستمر في قياس المسافة من هذه النقطة ، والحفاظ على الاتجاه. إذا كنت قد وصلت إلى هذه النقطة
0 او
M - تغيير الاتجاه:

كما هو مبين في الأشكال أعلاه ، فإن النقطة الأولى توضح المكان الذي تمس فيه الكرة الجدار السفلي للبلياردو. هذه النقطة لا تهمنا. سنقوم فقط بإصلاح النقاط
2kNدولا ل
k=0،1،2،... .
كيف نحتفل بهذه النقاط؟ تحويل البلياردو لدينا على المحور
X . بمناسبة النقاط
0،M،2M،3M،... . الآن الوصول إلى هذه النقطة
M نحن لا نغير اتجاه الحركة ، ولكن نواصل التحرك إلى هذه النقطة

.

مضاعفات
M ، قسّم محورنا إلى شرائح. نحن نحتفل بوضع علامة مشروطة على هذه الأجزاء بأخرى والأصفار (بالتناوب). على الأجزاء التي تحمل علامة أصفار ، تنتقل الكرة (في لعبة البلياردو المستطيلة) من اليسار إلى اليمين. على القطاعات التي تحمل علامة - من اليمين إلى اليسار. أو أبسط: الكرة تتحرك من اليسار إلى اليمين إذا

ل
Qk= lfloor frac2kNM rfloor\؛( textrmmod\؛2)؛ quadk=0،1،2،...
(يجب إيلاء اهتمام خاص لهذه الصيغة. بعد ذلك ، سنعود إليها)من السهل أن نرى أن النقطة التي عندها لمست الكرة الجدار العلوي للبلياردو هي بقية التقسيم
2kNدولا على
M . في هذه الحالة ، لا يمكننا إصلاح حركة الكرة في الاتجاه المعاكس. نأخذ الجزء كله من التقسيم
2kNدولا على
M إذا كان الأمر كذلك - فإننا نعتبر بقية التقسيم
2kNدولا على
M . اقسم الباقي الناتج على 2 (المسافة بين نقاط الاتصال المجاورة هي خليتين). حصلت على مؤشرات عناصر الصفيف ، والتي نحتاج إلى تعبئتها بالأصفار. تمتلئ العناصر المتبقية بوحدات (الكرة تتحرك من الجدار الأيمن إلى اليسار).
طول التسلسل =
fracM2 .
function sequence(m,n){ var md=m/2; var array=[]; for(var k=0;k<md;k++) array[k]=1; for(var k=0;k<md;k++) if(Math.floor(2*k*n/m)%2==0) array[((2*k*n)%m)/2]=0; return array; } console.log(sequence(55, 34).join(''));
الآن يمكننا بناء تسلسل ثنائي للبلياردو مع أي جانب
M و
N (بالأعداد الطبيعية).
بعض الأمثلة:
144 × 89 (أرقام فيبوناتشي):
010100101101001011010110100101101001010010110100101101011010010110100101
169 × 70 (أرقام Pell):
0101011010100101011010100101011010110101001010110101001010110101001010010101101010010
233 × 55 (أرقام فيبوناتشي الفردية
Fn و
Fn−3 ):
0100100110110110010011011011001001001101100100100110110010010011011011001001101101100
10010011011001001001101100100100
طاولة أخرى مثيرة للاهتماميتم الحصول على رسومات مثيرة للاهتمام للغاية إذا كنت تأخذ البلياردو مع عرض
M وبناء تسلسل لكل منهما
N من
0 قبل
M . بعد ذلك ، كومة هذه التسلسلات.
var array; for(var y=1;y<m;y++){ array=sequence(m,y); for(var x=0;x<array.length;x++){ if(array[x]==0) context.fillRect (x, y, 1, 1); } }
بعض الأمثلة.
م = 610:

م = 611:

م = 612:

م = 613:

م = 614:
لبقية م لدينا تسلسل. وإلا كيف يمكنك تصور تسلسلات ثنائية؟ باستخدام
سلحفاة الرسومات .
رسومات السلاحف
ارسم خط بعد ذلك ، نأخذ البتات بالتناوب من تسلسلنا. إذا كانت bit = 1 - أدر الجزء ذي الصلة بالجزء السابق
60 circ (في اتجاه عقارب الساعة). إذا بت = 0 - اقلب القطعة بواسطة
−60 circ . بداية الجزء التالي هي نهاية الجزء السابق.

خذ رقمين كبيرين فيبوناتشي:
F29=514229 و
F28=317811 .
بنيت التسلسل:
00101101001011010010100101101001011010110100101101001010010110100101 ... (257114 حرفًا بالإضافة إلى صفر بت).
نحن تصور باستخدام رسومات السلاحف. حجم القطعة الأولية هو 10 بكسل (الشريحة الأولية في الزاوية اليمنى السفلى):

حجم الجزء الأولي هو 5 بكسل:

حجم الجزء الأولي هو 1 بكسل:

المثال التالي هو أرقام بيل.
Pn= startcases0،n=0؛1،n=12Pn−1+Pn−2،n>1 endcases
خذ
P16=470832 و
P15=195025 .
التسلسل:
0010100101011010100101011010100101001010110101001010110101000010101101 (235415 حرفًا بالإضافة إلى صفر بت).
حجم الجزء الأولي هو 1 بكسل:

مثال آخر هو أرقام فيبوناتشي الفردية
Fn و
Fn−3 .
خذ
F28=317811 و
F25=75025دولا .
التسلسل:
00110110010010011111001001001001101101100100110110110010010011011011001001 ... (158905 plus zero bit).
بدلا من الزوايا
60 circ و
−60 circ سوف نستخدم الزوايا
90 circ و
−90 circ .
حجم الجزء الأولي هو 5 بكسل:

حجم الجزء الأولي هو 0.4 بكسل:

هذا المنحنى له اسم - "
كلمة فيبوناتشي كسورية ". يُعرف بعد Hausdorff لهذا المنحنى:
D=3 frac log Phi log(1+ sqrt2)=1،6379؛ quad Phi= frac1+ sqrt52
البرنامج النصي لتصور تسلسل ثنائي باستخدام سلحفاة الرسوماتالمشكلة
هل من الممكن رسم نمط للبلياردو ، الذي لا يمكن تعويض جانبه (أحد الجانبين هو رقم غير عقلاني)؟ المهمة ليست تافهة. في محاولة لحل هذه المشكلة ، سنواجه عددًا من الأسئلة:
1. إذا كانت الأطراف غير قابلة للتطبيق - فلا يمكننا تمهيد البلياردو بخلايا من نفس الحجم.
2. إذا كانت الجوانب غير قابلة للتطبيق - فستنعكس الكرة بلا حدود ولن تضرب الزاوية مطلقًا.
3. تمتلئ التسلسل في البلياردو ليس بالترتيب ، ولكن بشكل عشوائي.

السؤالان الأوليان ، بالطبع ، ليس لديهم حل. ولكن إذا كانت هناك طريقة لملء التسلسل بالترتيب ، فيمكننا ، في التسلسل من اليسار إلى اليمين ، استعادة النموذج بالطريقة التي استخدمناها أعلاه. وبالتالي لنرى كيف يبدو النموذج في الركن الأيسر العلوي من البلياردو ، والتي لا يمكن تعويض جوانبها.
السحر الاسود
خذ البلياردو ، التي تساوي جوانبها أرقام فيبوناتشي (مع أرقام أخرى ، قد لا تنجح هذه الخدعة). قم بتشغيل الكرة داخلها وحدد عدد الكرة التي تلمس الجدار العلوي. املأ الأرقام باللون الأبيض - إذا تحركت الكرة من اليمين إلى اليسار والأسود - إذا كانت الكرة قد انتقلت من اليسار إلى اليمين:

اللون الأبيض يتوافق مع واحد في التسلسل ، أسود - صفر. الآن دعنا نرتب الأرقام بالترتيب:

لقد حصلنا بالضبط على نفس تسلسل الأصفار والأصفار.
لأرقام أخرىالأصل هو الزاوية اليسرى العليا. على طول المحور
x - عرض البلياردو
M . على طول المحور
ذ - ارتفاع البلياردو
N . تشير النقاط البيضاء إلى الأرقام التي تتزامن معها التسلسلات:

الأرقام التي معكوس التسلسل:

لقد قمت بتحميل
البرنامج النصي :

السطر الأول هو إحداثيات الماوس ، والتي تستخدم كعرض وارتفاع البلياردو.
السطر الثاني هو أول 100 بت من التسلسل الذي تم الحصول عليه من خلال باقي التقسيم.
السطر الثالث هو أول 100 بت من التسلسل الذي تم الحصول عليه من خلال تكافؤ الجزء الصحيح.
اللون الأسود - تقديم التسلسل الأول باستخدام رسومات السلاحف.
البنفسجي - التصور من التسلسل الثاني.
في الواقع ، في بعض الحالات ، لا نحتاج إلى أخذ بقية التقسيم. بالنسبة لأرقام فيبوناتشي ، يكفي التحقق من تكافؤ الجزء الصحيح من القسم
2kNدولا على
M :
Qk= lfloor frac2kNM rfloor\؛( textrmmod\؛2)؛ quadk=0،1،2،...
في البسط لدينا
Fn . في المقام -
Fn+1 .
كما تعلم
limn to infty fracFnFn+1= frac1 Phi
Phi - النسبة الذهبية. عدد غير عقلاني. الآن يمكننا كتابة صيغتنا على النحو التالي:
Qk= lfloor frac2k Phi rfloor\؛( textrmmod\؛2)؛ quadk=0،1،2،...
لقد حصلنا على صيغة يمكننا من خلالها ملء تسلسل البلياردو بالترتيب ، والذي يساوي عرضه
Phi والطول
1 . طول التسلسل =
infty ، ولكن يمكننا استعادة جزء من النموذج ، والانتقال من اليسار إلى اليمين بالتسلسل والنظر إلى الزاوية اليسرى العليا للبلياردو. يبقى لمعرفة كيفية العد
Phiيمكن إعادة كتابة الوحدة مقسومة على النسبة الذهبية على النحو التالي:
frac1 Phi= frac−1+ sqrt52
يمكننا التخلص من اثنين:
frac2k Phi= frac2k(−1+ sqrt5)2=k sqrt5−k
صيغتنا تأخذ الشكل:
Qk= lfloork sqrt5−k rfloor\؛( textrmmod\؛2)؛ quadk=0،1،2،...
من أجل الوضوح ، وجهت طاولة. في العمود الثالث ، نتجاهل الجزء الكسري ونترك الكل. في العمود الرابع ، نتحقق من تكافؤ الجزء الصحيح:

في العمود الرابع حصلنا على تسلسلنا: 01010010110100 ...
نواصل حساب البتات للباقي
ك . استعادة جزء من نمط البلياردو مع الجانبين
1 و
Phi :

إذا كنت لا تأخذ بعيدا في كل مرة
ك - ثم يتم قلب كل بت في التسلسل. نحصل على الصيغة العامة:
Qk= lfloork sqrtx rfloor\؛( textrmmod\؛2)؛ quadk=0،1،2،...
ما الذي يمنعنا من استخدام الجذر التربيعي لثلاثة أو ، على سبيل المثال ، اثنين بدلاً من الجذر التربيعي لخمسة أشخاص؟ لا شيء
نحن نبني تسلسل ل
k sqrt3+k var x=3; var q=[]; for(var k=0;k<256000;k++) q[k]=Math.floor(k*Math.sqrt(x)+k)%2;
البتات القليلة الأولى من التسلسل:
00100101101001001011010010110110100101101001001011010010010110100101 ...
سوف نتصور باستخدام رسومات السلاحف. زوايا 90 و -90 درجة. حجم القطعة الأولي هو 5 بكسل:

حجم الجزء الأولي هو 0.5 بكسل:

نحن نبني تسلسل ل
k sqrt2 var x=2; var q=[]; for(var k=0;k<256000;k++) q[k]=Math.floor(k*Math.sqrt(x))%2;
البتات القليلة الأولى من التسلسل (
A083035 ):
01001101100100110010011011001101100100110110011011001001100100110110 ...
زوايا 90 و -90 درجة. حجم القطعة الأولي هو 5 بكسل:

حجم الجزء الأولي هو 0.5 بكسل:

إنه مثير للاهتماممن هذا المنحنى ، يمكنك استعادة "نمط البلياردو" ومعرفة ما يوجد حول المنحنى:

سيكون من المثير للاهتمام التقاط
M و
N لهذا النمط.
و هذاعدد القطع في الجزء المكرر من المنحنى =
Pn (أرقام Pell: 0 ، 1 ، 2 ، 5 ، 12 ، 29 ، 70 ، 169 ، 408 ، 985 ، 2378 ، ...).

sqrt2= limn to infty tfracPn−1+PnPn
زوايا 60 و -60 درجة. حجم القطعة الأولي هو 5 بكسل:
السيناريو التصورشخص ما قد يشك في أن تكافؤ عدد صحيح من
k sqrt2 يعطي تسلسل كسورية. نحن تصور جزء من هذا التسلسل بالطريقة الثانية:

من أجل الوضوح ، رسمت على أطول منحنى في النموذج الناتج:

هذا المنحنى له اسم - "كلمة فيبوناتشي كسورية".
كيفية الحصول على هذا التسلسل باستخدام البلياردو؟ نأخذ البلياردو ، عرضه = 1 ، والارتفاع =
sqrt2 . في الحدود العليا والسفلى ، نصلح اتجاه حركة الكرة. إذا تحركت الكرة من اليسار إلى اليمين - اكتب 0 ، وإذا كانت من اليمين إلى اليسار - اكتب 1.

اثنين من الرسوم البيانية:
z= lfloory sqrtx rfloor\؛( textrmmod\؛2)

z= lflooryx sqrt2 rfloor\؛( textrmmod\؛2)

يمكنك الاستمرار في هذا السياق لفترة طويلة جدًا - تتميز الأنماط بالعديد من الخصائص المثيرة للاهتمام. لكن المادة كانت بالفعل مرهقة للغاية. سأقول عن واحدة من الخصائص المثيرة للاهتمام في النهاية.
عند عرض الصور ، قد يواجه بعض المستخدمين نوبة صرع.في لعبة البلياردو الثنائية ، بدأنا الكرة من الزاوية اليسرى العليا وقمنا بملء المصفوفة بالبتات.
للبلياردو 610 × 377:

جزء مكبّر من النموذج:

إذا بدأت الكرة الثانية من زاوية مختلفة (من أسفل اليسار للبلياردو 610 × 377) وقمت بتمييز البتات التي تتزامن مع كلا المسارين - سنحصل على نمط مثير للاهتمام للغاية:

يتم تمييز وحدات البت المطابقة بالبكسل الأسود. جزء مكبّر من النموذج:

هناك طريقتان أخريان لرسم هذا النمط. وذكر واحد منهم في المادة
الكمال خلط ورق اللعب . ثانيًا:
لنرسم رسم بياني للوظيفة:
z= sin(x pi( sqrt5+1))+ sin(y pi( sqrt5+1))
وعلامة مع النقاط السوداء
z<0 :

جزء مكبّر من النموذج:
