Mga problemang hindi kayang lutasin ng kumpas at ruler. Gusali na may compass at straightedge


Ang artikulong ito ay batay sa isa sa mga seksyon ng aklat na "Python Programming" nina Sedgwick, Wayne at Dondero, na nabanggit na kanina. Ang seksyong ito ay tinatawag na "Systems of iterative functions", at inilalarawan nito ang pagbuo ng iba't ibang mga imahe, tulad ng Sierpinski triangle, ang Barnsley fern, at ilang iba pa, gamit ang isang medyo simpleng algorithm, na, bukod dito, ay madaling ipatupad.

Magsisimula ako sa pamamagitan ng paglalarawan ng algorithm na ito. Gagamit ako ng terminolohiya sa matematika, kabilang ang hindi ginagamit ng mga may-akda ng aklat, sa kurso ng kanilang pagsasalaysay. Ang isang purong matematikal na pagtingin sa mga algorithm ay ginagawang mas madali para sa akin na maunawaan ang mga ito, at medyo maginhawa para sa akin na ipahayag ang mga ito gamit ang isang matematikal na wika.

Kaya, upang maunawaan ang teoretikal na bahagi ng artikulo, ang mambabasa ay mangangailangan ng kaalaman sa ilang mga seksyon ng matematika, na karaniwang binabasa sa mga teknikal na unibersidad. Lalo na, ito ay magiging kapaki-pakinabang upang maging pamilyar sa teorya ng posibilidad at mga elemento ng pagsusuri sa matematika.

Ang teoretikal na bahagi ng artikulo ay susundan ng isang praktikal na naglalarawan sa pagpapatupad ng algorithm sa wikang C99. Dahil ang mga resulta ng programa ay mga imahe, gagamitin namin ang pgraph graphics library sa programa, sa pag-aakalang ang mambabasa, hindi bababa sa pangkalahatang mga termino, ay pamilyar dito.

Kaya, lumipat tayo sa teoretikal na bahagi ng ating kuwento.

Mga umuulit na function at random na pagkakasunud-sunod

Bago ilarawan ang scheme kung saan bubuo ang mga imahe, pag-usapan natin ang mga sequence na ang mga miyembro ay kinakalkula gamit ang mga paulit-ulit na formula.

Tukuyin natin ang 2 sequence, x n n = 1 ∞ at y n n = 1 ∞ , gamit ang mga sumusunod na recursive formula:

X n = f x n - 1 , y n - 1 , n ∈ ℕ , y n = g x n - 1 , y n - 1 , n ∈ ℕ .

Ipaliwanag natin iyan x 0 at y Ang 0 ay ilang paunang natukoy na mga numero, at f(x, y) at g(x, y) ay ilang mga function ng dalawang variable na tinatawag umuulit. Ang proseso ng pagkalkula ng susunod na miyembro ng isang partikular na sequence sa pamamagitan ng naturang mga function ay tatawagin mga pag-ulit, at ang nasa itaas na hanay ng mga paulit-ulit na formula ay isang umuulit na pamamaraan.

Ang recursive na paraan ng pagtukoy ng mga sequence ay malamang na pamilyar sa mambabasa kung siya ay nag-aral ng matematika sa isang unibersidad. Ang medyo hindi karaniwan ay maaaring tila isang "krus" na paraan para sa pagkalkula ng mga miyembro ng mga pagkakasunud-sunod, kung saan para sa pagkalkula n ang ika-miyembro ng bawat isa sa dalawang sequence ay kailangan hindi lamang n− Unang miyembro ng parehong pagkakasunud-sunod, ngunit din n− Iba ang unang miyembro.

Ngayon isaalang-alang ang isang pamamaraan para sa pagbuo ng mga miyembro ng dalawang sequence na gumagamit ng hindi lamang isang pares ng umuulit na function, ngunit m singaw. Ang bawat isa sa mga function na ito ay magiging linear sa parehong mga variable at maglalaman din ng isang additive constant. Mas partikular, ang mga pag-andar ay magiging ganito:

F k x , y = a k x + b k y + c k g k x , y = d k x + e k y + h k , k = 0 , 1 , … , m - 1 .

Para sa lahat n, simula sa 1, ay random na pipili ng isang numero mula 0 hanggang m− 1, at kapag kinakalkula x n at y n sa mga paulit-ulit na formula, isang pares ng umuulit na function ang gagamitin, ang mga indeks nito ay katumbas ng isang ibinigay na random na numero. Tandaan na ang mga random na numero na "lumalabas" bago ang bawat pag-ulit ay hindi kailangang pantay na posibilidad. Gayunpaman, para sa iba't ibang mga hakbang, ang posibilidad ng paglitaw ng isang partikular na nakapirming numero ay pareho.

Bumalangkas tayo ngayon kung ano ang sinabi sa mahigpit na wikang matematika. Isaalang-alang ang isang sequence ng discrete random variables T n = 1 ∞ , independyente sa kabuuan, na ibinahagi ayon sa parehong batas. Namely: ang bawat random na variable ay tumatagal ng mga halaga 0, 1, ..., m− 1 na may katumbas na probabilidad p 0 , p 1 , …, p m-1 .

Ngayon ang mga sequence x n n = 1 ∞ at y n n = 1 ∞ ay tinukoy gamit ang sumusunod na iterative scheme:

X n = f T n x n - 1 , y n - 1 , n ∈ ℕ , y n = g T n x n - 1 , y n - 1 , n ∈ ℕ .

Gaya ng kanina, x 0 at y 0 ay ilang paunang natukoy na mga numero.

Kaya, ang bawat isa sa mga pagkakasunud-sunod ay random, iyon ay, ang mga miyembro nito ay mga random na variable. Gayunpaman, ang bawat isa sa mga pagkakasunud-sunod na ito ay maaaring "maisakatuparan", ibig sabihin, ang lahat ng mga miyembro nito ay maaaring kalkulahin (siyempre, magkakaroon ng walang katapusan na maraming mga naturang pagpapatupad).

Tingnan natin ang pangunahing tanong ng seksyong ito. At ano ang kinalaman ng mga imaheng gagawin natin sa pares na ito ng mga random na pagkakasunud-sunod? Napakasimple. Bumuo tayo ng pagsasakatuparan ng dalawang sequence na ito. Para sa bawat natural n mag-asawa ( x n, y n) ay maaaring ituring bilang mga coordinate ng isang punto na ibinigay sa isang Cartesian rectangular coordinate system sa eroplano. Kaya, ang imahe na naaayon sa ilang pares ng mga ipinatupad na pagkakasunud-sunod ay ang locus ng lahat ng naturang mga punto sa eroplano.

Tila na para sa bawat pagpapatupad ng isang pares ng mga pagkakasunud-sunod, makakakuha tayo ng sarili nating imahe, na naiiba sa iba. Gayunpaman, kahit na tila kabalintunaan, ang mga magreresultang imahe ay halos magkakasabay sa bawat oras (i.e., kapag na-plot sa isang computer, sila ay hindi makilala ng mata ng tao). At sa naaangkop na pagpili ng mga umuulit na function at mga batas sa pamamahagi ng mga random na variable na kasangkot sa pagbuo ng mga miyembro ng pagkakasunud-sunod, ang mga napaka-interesante na pattern ay maaaring malikha.

Idinagdag namin na kapag gumagawa ng mga imahe sa isang computer, kami, siyempre, ay gagawa lamang ng isang may hangganan (ngunit sapat na malaki) na bilang ng mga pag-ulit.

Tungkol sa pagbuo ng mga pseudo-random na numero

Kapag nagsusulat ng isang programa, haharapin natin ang pangangailangang bumuo ng mga pseudo-random na numero na ipinamahagi, sa pangkalahatan, hindi pantay, ngunit ayon sa isang paunang natukoy na batas. Kasabay nito, magkakaroon lamang kami ng software generator ng mga pseudo-random na numero na pantay na ipinamamahagi sa pagitan . Paano makukuha ang una mula sa pangalawang pamamahagi?

Isalin natin ang problema sa isang mathematical plane. Hayaang magkaroon ng tuluy-tuloy na random variable U, ibinahagi nang pantay sa segment . Itakda natin sa ating sarili ang layunin ng pagbuo ng isang discrete random variable T bilang isang katangian ng U, Sa paraang iyon T kinuha ang mga halaga 0, 1, ..., m− 1 na may katumbas na probabilidad p 0 , p 1 , …, p m-1 .

Ang paglutas ng problema ay napakasimple. Ipakilala natin sa pagsasaalang-alang ang kabuuan ng mga probabilidad

s k = ∑ i = 0 k - 1 p i , k = 0 , 1 , … , m - 1 .

Kung ang limitasyon sa itaas na pagbubuod ay lumampas i ay mas mababa kaysa sa mas mababa, pagkatapos ay sa pamamagitan ng kahulugan ay ipapalagay natin na ang naturang kabuuan ay katumbas ng 0.

T ipahayag sa pamamagitan ng U sa sumusunod na paraan:

T = 0 kung U ∈ s 0 , s 1 , 1 kung U ∈ s 1 , s 2 , 2 kung U ∈ s 2 , s 3 , … … … … … … , … … … … … … , m - 1 kung U ∈ s m - 1 , 1 .

Malinaw na ang random variable T ipinamahagi ayon sa batas na aming hinihiling. Tandaan na, sa katunayan, T- ito ang bilang ng pagitan kung saan bumaba ang random variable U(sa kondisyon na binibilang namin ang mga pagitan ng mga numero mula 0 hanggang m− 1 sa pataas na pagkakasunud-sunod ng kanilang mga kaliwang hangganan).

Mula sa praktikal na pananaw, ang resulta na nakuha ay nagbibigay-daan, sa bawat hakbang ng pag-ulit, bilang ang bilang ng mga umuulit na pag-andar, na kunin ang bilang ng agwat kung saan bumabagsak ang bilang na nabuo ng generator ng mga pseudo-random na numero na pantay na ipinamamahagi sa pagitan. .

Ngayon ay maaari na tayong magpatuloy sa pagsulat ng programa.

Istruktura ng Programa

Ang programa ay binubuo ng main.c file at ang mga file na bumubuo sa pgraph graphics library. Ang nilalaman ng main.c file ay nagsisimula sa sumusunod na direktiba na kinabibilangan ng graphics library:

#include "pgraph.h"

Dagdag pa, naglalaman ang file ng mga paglalarawan ng mga global constant variable at constant array. Sa likod ng mga ito ay ang mga kahulugan ng get_random_value() at main() function. Ang una ay bumubuo ng mga pseudo-random na numero, at ang pangalawa ay gumagawa ng pangunahing gawain ng pagbuo ng mga imahe.

Global constant variable at constant arrays

Ang lahat ng impormasyong kailangan para makabuo ng isang partikular na imahe ay nakapaloob sa mga global constant variable at constant array. Siyempre, para sa bawat imahe, ang hanay ng mga halaga ng mga constants at mga elemento ng pare-pareho ang mga arrays ay magiging "sarili nito".

Ang mga sumusunod ay mga paglalarawan ng mga constant at array na ito.

  • n ay ang bilang ng mga pag-ulit;
  • w - lapad ng imahe sa mga pixel;
  • h - taas ng imahe sa mga pixel;
  • xc - abscissa ng simula ng bagong sistema ng coordinate sa lumang sistema;
  • yc - ordinate ng simula ng bagong coordinate system sa lumang sistema;
  • l ay ang haba sa mga pixel ng isang segment na kahanay sa isa sa mga coordinate axes, na may haba ng yunit sa bagong coordinate system;
  • m ay ang bilang ng mga pares ng umuulit na function, ibig sabihin, ang numero m;
  • s - isang-dimensional na hanay ng laki m naglalaman ng mga kabuuan ng mga probabilidad ng mga random na variable T n (k-th array elemento ay naglalaman ng s k);
  • f ay isang two-dimensional array na binubuo ng m f k(x, yk, 0), (k, 1), (k, 2) naglalaman ng mga numero isang k, b k, c k ayon sa pagkakabanggit, kung saan 0 ≤ km − 1);
  • g - two-dimensional array na binubuo ng m"row" at 3 "column" na naglalaman ng mga constant na ginagamit sa mga function g k(x, y) (mga elemento ng array na may mga indeks ( k, 0), (k, 1), (k, 2) naglalaman ng mga numero d k, e k, h k ayon sa pagkakabanggit, kung saan 0 ≤ km − 1).

Ang lahat ng mga variable ay may uri na int , at ang batayang uri ng lahat ng mga array ay doble .

Linawin natin na ang "lumang" coordinate system ay nangangahulugang ang tinukoy sa pgraph library. Ang pagtatayo ng lahat ng mga imahe ay isasagawa sa bagong sistema na nakuha mula sa luma sa pamamagitan ng parallel na paglipat (mga paglilipat kasama ang abscissa at ordinate axes ay pantay, ayon sa pagkakabanggit x c at y c) at "compression" sa l minsan. Kaya, ang isang punto na may mga coordinate sa bagong sistema ( x, y), sa luma ay magkakaroon ng mga coordinate ( x l + x c, y l + y c). Ito ay kalabisan, sa palagay ko, upang ipaliwanag kung anong uri ng imbakan ng mga numero x c, y c at l ang mga pare-parehong variable xc , yc at l ay may pananagutan, ayon sa pagkakabanggit.

Upang mag-imbak ng mga numero x 0 at y 0 na mga variable ay hindi inilalaan, dahil sa lahat ng mga kaso ng imaging, ang mga zero ay kinukuha bilang mga numerong ito.

Pseudo-random na pagbuo ng numero: get_random_value() function

Ang get_random_value() function ay bumubuo ng pseudo-random integer sa hanay mula 0 hanggang m− 1 alinsunod sa scheme na inilarawan kanina. Narito ang code para sa function na ito:

1. int get_random_value() 2. { 3. double r = (double ) rand() / RAND_MAX; 4. int c = 1; 5. habang (s[c]< r && ++c < m) 6. ; 7. bumalik c - 1; 8. }

Gamit ang standard library function rand(), nakakakuha tayo ng pseudo-random na numero sa hanay mula 0 hanggang sa halaga ng RAND_MAX macro, hatiin ang resulta sa halagang ito, at italaga ang quotient sa variable r (p. 3). Ngayon ay iniimbak ng r ang numerong kabilang sa pagitan . Ito ay maaaring ituring bilang ang halaga ng isang random na variable na pantay na ipinamamahagi sa segment na ito.

Linawin natin na ang halaga ng RAND_MAX macro sa aming kaso (i.e., sa kaso ng paggamit ng MinGW64 compiler version 4.9.2 para sa 64-bit system) ay 32767.

Ngayon, gamit ang isang linear na paghahanap gamit ang isang while loop, hinahanap namin ang index ng pinakamalaking elemento ng array s na mas mababa sa o katumbas ng halaga ng r plus one, at iniimbak ito sa variable c (tingnan ang pahina 4- 6). Tandaan na kung ang halaga ng r ay zero, ang loop ay hindi kailanman ipapatupad, at ang variable c ay nagpapanatili ng isang solong halaga (tingnan ang pahina 4).

Ang halaga na ibinalik ng function ay maaaring ituring na halaga ng isang random na variable T inilarawan sa seksyong nabanggit sa itaas.

Pagbuo ng larawan: pangunahing() function

At narito ang pangunahing() function code:

1. int main() 2. { 3. larawan *img = create_image(w, h); 4. dobleng x = 0 , y = 0 ; 5. para sa (int i = 0 ; i< n; i++) 6. { 7. int r = get_random_value(); 8. dobleng x1 = f[r] * x + f[r] * y + f[r]; 9. dobleng y1 = g[r] * x + g[r] * y + g[r]; 10.x=x1; 11.y=y1; 12. set_color(img, round(x * l) + xc, round(y * l) + yc, BLACK); 13. } 14. save_to_file(img, "out.bmp" ); 15.libre(img); 16. ibalik ang 0; 17. }

Lumikha ng isang imahe na may tinukoy na mga sukat (p. 3). Maglaan ng memorya para sa mga variable x at y, na mag-iimbak ng kasalukuyang mga miyembro ng mga pagkakasunud-sunod, at magsisimula ang mga ito sa zero (p. 4). Hayaan akong ipaalala sa iyo na bilang mga numero x 0 at y 0 , na kasangkot sa pagkalkula ng mga unang miyembro ng bawat isa sa mga pagkakasunud-sunod, ang mga zero ay kinuha.

Kalkulahin sa para sa loop ang una n miyembro ng bawat sequence (pahina 5-13). Kumuha muna kami ng pseudo-random na numero at isulat ito sa r (p. 7). Susunod, kinakalkula namin ang kasalukuyang mga halaga ng mga miyembro ng parehong mga pagkakasunud-sunod, inilalagay ang mga ito sa mga pansamantalang variable na x1 at y1 (p. 8, 9). Kapag nagkalkula, gumagamit kami ng mga constant na lumilitaw sa mga umuulit na function at nakaimbak sa mga array f at g . Ang pagpili ng isa o isa pang pares ng mga set ng coefficients (at samakatuwid, isang pares ng iterative function) ay depende sa halaga ng r , na ginagamit bilang mga unang indeks ng array elements na kasangkot sa mga kalkulasyon.

Isinulat namin muli ang kinakalkula na kasalukuyang mga halaga sa mga variable na x at y (p. 10, 11). Ang mga point coordinates na nakapaloob sa mga variable na ito ay na-convert sa mga coordinate ng orihinal na sistema ng coordinate, na ni-round up sa mga integer, at ang punto na may mga resultang coordinate ay naka-plot sa imahe sa itim (p. 12).

Sa pagkumpleto ng cycle, i-save ang nabuong imahe sa file na "out.bmp" (p. 14) at palayain ang memorya na inookupahan ng imahe (p. 15). Kinukumpleto nito ang function.

Pagbuo ng imahe ng Sierpinski triangle

Ang Sierpinski triangle ay isang set ng mga puntos na nakuha mula sa lahat ng mga punto ng ilang paunang equilateral triangle gaya ng mga sumusunod. Ang tatsulok ay nahahati sa tatlong gitnang linya sa 4 na tatsulok, pagkatapos nito ay tinanggal ang "gitnang" tatsulok. Dagdag pa, ang parehong operasyon ay ginagawa sa bawat isa sa natitirang tatlong equilateral triangles. Sa wakas, ginagawa namin ang parehong sa nagresultang siyam na equilateral triangles.

Ang pagpapatuloy ng inilarawan na mga operasyon hanggang sa kawalang-hanggan, sa wakas ay tinanggal namin mula sa orihinal na tatsulok ang isang walang katapusang bilang ng mga equilateral triangles, ang kabuuan ng mga lugar kung saan ay katumbas ng lugar ng orihinal. Ang natitirang mga punto ay bumubuo ng isang linya na tinatawag Sierpinski triangle, na gumaganap ng mahalagang papel sa set theory.

Ang aklat ni Sedgwick at iba pang mga may-akda ay nagmumungkahi ng sumusunod na pamamaraan para sa pagbuo ng isang imahe ng Sierpinski triangle. Isaalang-alang ang 3 puntos sa eroplano na vertices ng isang equilateral triangle, halimbawa, mga puntos na may mga coordinate 0 , 0 , 0 , 1 , 1 / 2 , 3 / 2 sa isang Cartesian rectangular coordinate system. Pinipili namin nang random (na may pantay na probabilidad) ang isa sa tatlong vertex ng tatsulok at bumuo ng isang punto na naghahati sa segment na nagkokonekta sa vertex na may mga coordinate 0, 0 at ang vertex na pinili nang random, sa kalahati. Ito ang unang punto ng aming imahe.

Ang algorithm sa itaas ay maaaring ilagay sa naunang inilarawan na scheme ng pagbuo ng imahe, na nagsasangkot ng mga random na pagkakasunud-sunod at umuulit na mga function.

Kailangan namin ng 3 pares ng mga function ng pag-ulit. Ang kanilang mga indeks na 0, 1, 2 ay dapat piliin na may mga probabilidad na 1/3, 1/3, 1/3 ayon sa pagkakabanggit. Ang mga umuulit na pag-andar mismo ay ipinapakita sa ibaba.

F 0 x , y = 1/2 x , g 0 x , y = 1/2 y , f 1 x , y = 1/2 x + 1/2 , g 1 x , y = 1/2 y , f 2 x , y = 1 / 2 x + 1 / 4 , g 2 x , y = 1 / 2 y + 3 / 4 .

Ngayon, ipasok natin sa ating programa ang mga deklarasyon ng mga global constant variable at constant arrays na tumutugma sa ibinigay na probabilities at ibinigay na iterative functions. Ngunit una, tukuyin natin ang TRIANGLE macro sa pamamagitan ng paglalagay ng sumusunod na statement sa main.c file pagkatapos ng #include statement

#define TRIANGLE

Pagkatapos ng mga tagubilin, i-paste ang sumusunod na code sa file:

// Sierpinski triangle #ifdef TRIANGLE const int n = 100000 ; //bilang ng mga pag-ulit const int w = 620 , h = 550 ; //mga sukat ng larawan const int xc = 10 , yc = 10 ; // coordinate ng simula ng bagong coordinate system sa luma const int l = 600 ; //compression ratio const int m = 3 ; //bilang ng mga pares ng mga function ng pag-ulit const double s = (0, 0.3333333, 0.6666667); //array ng mga sums of probabilities const double f = ((0.5 , 0.0 , 0.0 ), //array ng mga coefficient para sa mga function f(x,y), {0.5 , 0.0 , 0.5 }, //ginamit sa pagkalkula ng x {0.5 , 0.0 , 0.25 }}; const double g = ((0.0 , 0.5 , 0.0 ), //array ng mga coefficient para sa mga function g(x,y), {0.0 , 0.5 , 0.0 }, //ginamit sa pagkalkula ng y {0.0 , 0.5 , 0.4330127 }}; #tapusin kung

Ang fragment ng code sa itaas (nang walang mga preprocessor na direktiba) ay isasama lamang kung ang TRIANGLE macro ay tinukoy (at ito ay tinukoy). Siyempre, ang mga constant na maaari lamang katawanin gamit ang mga infinite decimal fraction (rasyonal o hindi makatwiran) ay ni-round off.

Bilang resulta ng pag-compile at pagpapatupad ng program, lumilitaw ang isang graphic file na out.bmp sa root directory ng executable file, na naglalaman ng sumusunod na larawan:

Pagbuo ng imahe ng Barnsley fern

Ang susunod na imahe, ang pagtatayo nito ay inilarawan sa aklat ni Sedgwick at iba pa, ay ang imahe ng Barnsley fern. Ngayon kailangan namin ng 4 na pares ng iterative function. Ang kanilang mga indeks 0, 1, 2, 3 ay pipiliin na may probabilidad na 0.01, 0.85, 0.07, 0.07 ayon sa pagkakabanggit. At narito ang mga pag-andar ng pag-ulit mismo:

F 0 x , y = 0 . 5 , g 0 x , y = 0 , 16 y , f 1 x , y = 0 , 85 x + 0 , 04 y + 0 , 075 , g 1 x , y = - 0 , 04 x + 0 , 85 y + 0 , 18 , f 2 x , y = 0 , 2 x - 0 , 26 y + 0 , 4 , g 2 x , y = 0 , 23 x + 0 , 22 y + 0 , 045 , f 3 x , y = - 0 , 15 x + 0 , 28 y + 0 . 575 , g 3 x , y = 0 , 26 x + 0 , 24 y - 0 , 086 .

Gumagawa kami ngayon ng mga pagbabago sa programa. Ang #define na pagtuturo ay pinapalitan ng pagtuturo

#define FERN

At pagkatapos ng #ifdef -block inilalagay namin ang sumusunod na piraso ng code:

// Fern Barnsley #ifdef FERN const int n = 100000 ; const int l = 600 ; const int m = 4 ; const double s = (0, 0.01, 0.86, 0.93); const double f = ((0.0 , 0.0 , 0.5 ), {0.85 , 0.04 , 0.075 }, {0.2 , -0.26 , 0.4 }, {-0.15 , 0.28 , 0.575 }}; const double g = ((0.0 , 0.16 , 0.0 ), {-0.04 , 0.85 , 0.18 }, {0.23 , 0.22 , 0.045 }, {0.26 , 0.24 , -0.086 }}; #tapusin kung

Ang resulta ng pag-compile at pagpapatakbo ng programa ay ang sumusunod na larawan:

Pagbuo ng isang imahe ng isang puno

Ngayon ay buuin natin ang tinatawag na "puno" sa aklat ni Sedgwick at ng iba pa, bagaman ang lumalabas na itinatanghal ay parang isang koleksyon ng mga puno na may iba't ibang laki. Sa pagkakataong ito, 6 na pares ng umuulit na function ang lalahok sa umuulit na proseso. Ang kanilang mga indeks na 0, 1, 2, 3, 4, 5 ay pipiliin na may mga probabilidad na 0.1, 0.1, 0.2, 0.2, 0.2, 0.2 ayon sa pagkakabanggit. Ito ang mga function:

F 0 x , y = 0 . 55 , g 0 x , y = 0 . 6 y , f 1 x , y = - 0. 05 x + 0. 525 , g 1 x , y = - 0. 5 x + 0 , 75 , f 2 x , y = 0 , 46 x - 0 , 15 y + 0 , 27 , g 2 x , y = 0 , 39 x + 0 , 38 y + 0 , 105 , f 3 x , y = 0 , 47 x - 0 , 15 y + 0 , 265 , g 3 x , y = 0 , 17 x + 0 , 42 y + 0 , 465 , f 4 x , y = 0 , 43 x + 0 , 26 y + 0 , 29 , g 4 x , y = - 0 , 25 x + 0 , 45 y + 0 , 625 , f 5 x , y = 0 , 42 x + 0 , 26 y + 0 , 29 , g 5 x , y = - 0.35x + 0.31y + 0.525.

#define TREE

Pagkatapos ng huling #ifdef block, i-paste ang sumusunod na code:

// Puno #ifdef PUNO const int n = 100000 ; const int w = 620 , h = 620 ; const int xc = 0 , yc = 10 ; const int l = 600 ; const int m = 6 ; const double s = (0 , 0.1 , 0.2 , 0.4 , 0.6 , 0.8 ); const double f = ((0.0 , 0.0 , 0.55 ), {-0.05 , 0.0 , 0.525 }, {0.46 , -0.15 , 0.27 }, {0.47 , -0.15 , 0.265 }, {0.43 , 0.26 , 0.29 }, {0.42 , 0.26 , 0.29 }}; const double g = ((0.0 , 0.6 , 0.0 ), {-0.5 , 0.0 , 0.75 }, {0.39 , 0.38 , 0.105 }, {0.17 , 0.42 , 0.465 }, {-0.25 , 0.45 , 0.625 }, {-0.35 , 0.31 , 0.525 }}; #tapusin kung

Ang output ng pinagsama-samang programa ay ang larawang ipinapakita sa ibaba:

Ang huling imahe na aming itatayo, na ginagabayan ng aklat ni Sedgwick, ay ang imahe ng isang coral. Kailangan namin ng 3 pares ng mga function ng pag-ulit. Ang kanilang mga indeks na 0, 1, 2 ay pipiliin na may mga probabilidad na 0.4, 0.15, 0.45 ayon sa pagkakabanggit. Ang mga umuulit na function ay ibinigay sa ibaba.

F 0 x , y = 0 . 3077 x - 0 . 5315 y + 0 . 8863 , g 0 x , y = - 0. 4615 x - 0 . x - 0, 0769 y + 0, 2166, g 1 x, y = 0, 1538 x - 0, 4476 y + 0, 3384, f 2 x, y = 0, 5455 y + 0, 0106, g 2 x, y = 0 . 6923 x - 0 . 1958 y + 0 . 38

Palitan ang pagtuturo ng #define ng pagtuturo

#define CORAL

Pagkatapos ng huling #ifdef -block, magpasok ng bagong block:

//Koral #ifdef CORAL const int n = 100000 ; const int w = 620 , h = 620 ; const int xc = 10 , yc = 10 ; const int l = 600 ; const int m = 3 ; const double s = (0 , 0.4 , 0.55 ); const double f = ((0.3077 , -0.5315 , 0.8863 ), {0.3077 , -0.0769 , 0.2166 }, {0.0 , 0.5455 , 0.0106 }}; const double g = ((-0.4615 , -0.2937 , 1.0962 ), {0.1538 , -0.4476 , 0.3384 }, {0.6923 , -0.1958 , 0.3808 }}; #tapusin kung

Narito ang imahe na nakuha namin bilang isang resulta ng pag-compile at pagpapatupad ng programa:

Konklusyon

Hindi ko alam ang tungkol sa iyo, ngunit ito ay kawili-wiling para sa akin na panoorin kung paano ang mga hanay ng mga mathematical formula ay "naging" sa mga napaka nakakatawang larawan. Nagulat din ako na ang mga nakaisip ng lahat ng ito ay nagawang pumili ng mga probabilities at constants na kasangkot sa iterative functions sa paraang makamit ang mga kahanga-hangang larawan! Ang paraan ng pagpili ng lahat ng mga numerong ito (maliban sa kaso ng Sierpinski triangle) ay ganap na hindi maintindihan sa akin!

Pansinin ko na, sa paghusga sa mga imahe, ang Sierpinski triangle at ang Barnsley fern ay fractals. Malamang, ang parehong ay maaaring sinabi tungkol sa "puno" at "coral", ngunit ang kanilang fractal kalikasan ay marahil ay isang maliit na hindi gaanong halata.

Gamit ang link sa ibaba, gaya ng nakasanayan, maaari mong i-download ang source code ng program na tinalakay sa artikulo. Ang main.c file ay may apat na #define na pahayag, bawat isa ay tumutugma sa isa sa apat na larawan. Tatlo sa kanila ang nagkomento. Ito ay malinaw na upang lumipat mula sa isang imahe patungo sa isa pa, kailangan mong magkomento sa hindi nagkomento na pagtuturo at mag-uncomment sa isa sa mga nagkomento. Well, nakuha mo ang ideya ...

At sa tulong ng isang simpleng algorithm, maaari mong matiyak na ang mga larawang tinalakay sa artikulo ay maayos na "bumaling" sa isa't isa. Ngunit ito ay isang paksa para sa isang hiwalay na artikulo.

Sa mga gawain sa pagtatayo, isasaalang-alang namin ang pagtatayo ng isang geometric na pigura, na maaaring isagawa gamit ang isang ruler at isang compass.

Gamit ang isang ruler, maaari mong:

    arbitrary na linya;

    isang arbitrary na linya na dumadaan sa isang naibigay na punto;

    isang tuwid na linya na dumadaan sa dalawang ibinigay na mga punto.

Gamit ang isang compass, maaari mong ilarawan ang isang bilog ng isang ibinigay na radius mula sa isang partikular na sentro.

Ang isang compass ay maaaring gamitin upang gumuhit ng isang segment sa isang partikular na linya mula sa isang partikular na punto.

Isaalang-alang ang mga pangunahing gawain para sa pagtatayo.

Gawain 1. Bumuo ng isang tatsulok na may mga ibinigay na panig a, b, c (Larawan 1).

Desisyon. Sa tulong ng ruler, gumuhit ng di-makatwirang tuwid na linya at kumuha ng di-makatwirang punto B dito. Sa pamamagitan ng pagbubukas ng compass na katumbas ng a, inilalarawan namin ang isang bilog na may sentro B at radius a. Hayaan ang C ang punto ng intersection nito sa linya. Sa pagbubukas ng compass na katumbas ng c, inilalarawan namin ang isang bilog mula sa gitna B, at may pagbubukas ng compass na katumbas ng b - isang bilog mula sa gitna C. Hayaan ang A ang intersection point ng mga bilog na ito. Ang Triangle ABC ay may mga panig na katumbas ng a, b, c.

Magkomento. Upang ang tatlong mga segment ng linya ay magsilbi bilang mga gilid ng isang tatsulok, kinakailangan na ang mas malaki sa mga ito ay mas mababa kaysa sa kabuuan ng iba pang dalawa (at< b + с).

Gawain 2.

Desisyon. Ang anggulong ito na may vertex A at beam OM ay ipinapakita sa Figure 2.

Gumuhit ng arbitrary na bilog na nakasentro sa vertex A ng ibinigay na anggulo. Hayaan ang B at C ang mga punto ng intersection ng bilog na may mga gilid ng anggulo (Larawan 3, a). Gumuhit tayo ng isang bilog na may radius AB na may sentro sa puntong O - ang panimulang punto ng sinag na ito (Larawan 3, b). Ang punto ng intersection ng bilog na ito na may ibinigay na sinag ay ilalarawan bilang С 1 . Ilarawan natin ang isang bilog na may sentro C 1 at radius BC. Ang punto B 1 ng intersection ng dalawang bilog ay nasa gilid ng nais na anggulo. Ito ay sumusunod mula sa pagkakapantay-pantay Δ ABC \u003d Δ OB 1 C 1 (ang ikatlong pamantayan para sa pagkakapantay-pantay ng mga tatsulok).

Gawain 3. Buuin ang bisector ng ibinigay na anggulo (Fig. 4).

Desisyon. Mula sa vertex A ng isang naibigay na anggulo, tulad ng mula sa gitna, gumuhit kami ng isang bilog ng di-makatwirang radius. Hayaang B at C ang mga punto ng intersection nito sa mga gilid ng anggulo. Mula sa mga punto B at C na may parehong radius, inilalarawan namin ang mga bilog. Hayaan ang D ang kanilang intersection point, naiiba sa A. Hinahati ng Ray AD ang anggulo A sa kalahati. Ito ay sumusunod mula sa pagkakapantay-pantay ΔABD = ΔACD (ang ikatlong pamantayan para sa pagkakapantay-pantay ng mga tatsulok).

Gawain 4. Gumuhit ng median na patayo sa segment na ito (Larawan 5).

Desisyon. Sa pamamagitan ng isang arbitrary ngunit magkaparehong pagbubukas ng compass (malaking 1/2 AB), inilalarawan namin ang dalawang arko na may mga sentro sa mga puntong A at B, na nagsalubong sa isa't isa sa ilang mga puntong C at D. Ang tuwid na linyang CD ay ang kinakailangang patayo. Sa katunayan, tulad ng makikita mula sa konstruksyon, ang bawat isa sa mga puntong C at D ay pantay na malayo sa A at B; samakatuwid, ang mga puntong ito ay dapat na nasa perpendicular bisector sa segment AB.

Gawain 5. Hatiin ang segment na ito sa kalahati. Ito ay nalulutas sa parehong paraan tulad ng problema 4 (tingnan ang Fig. 5).

Gawain 6. Sa pamamagitan ng isang ibinigay na punto, gumuhit ng isang linya na patayo sa ibinigay na linya.

Desisyon. Dalawang kaso ang posible:

1) ang ibinigay na punto O ay namamalagi sa ibinigay na tuwid na linya a (Larawan 6).

Mula sa punto O gumuhit kami ng isang bilog na may di-makatwirang radius na nagsasalubong sa linya a sa mga puntong A at B. Mula sa mga puntong A at B gumuhit kami ng mga bilog na may parehong radius. Hayaan ang О 1 ang kanilang intersection point na iba sa О. Nakukuha namin ang ОО 1 ⊥ AB. Sa katunayan, ang mga puntong O at O ​​1 ay katumbas ng layo mula sa mga dulo ng segment AB at, samakatuwid, ay nasa perpendicular bisector sa segment na ito.

Ipinagmamalaki ng mga Griyegong geometer ang kanilang lohikal na kadalisayan; gayunpaman, hanggang sa pisikal na espasyo ay nababahala, sila ay ginagabayan ng intuwisyon. Ang isang aspeto ng Greek geometry na partikular na naiimpluwensyahan ng mga pisikal na pagsasaalang-alang ay ang teorya ng mga konstruksyon. Karamihan sa elementarya na geometry ng mga tuwid na linya at bilog ay maaaring tingnan bilang isang teorya ng mga konstruksyon na may ruler at compass. Ang mismong pangalan ng paksa, mga linya at bilog, ay sumasalamin sa mga tool na ginamit upang maisakatuparan ang mga ito. At marami sa mga pangunahing problema ng geometry, tulad ng paghahati-hati ng isang segment ng linya o isang anggulo,

Ang pagbuo ng isang patayo o pagguhit ng isang bilog sa pamamagitan ng tatlong ibinigay na mga punto ay maaaring malutas sa pamamagitan ng pagbuo ng isang ruler at isang compass.

Kapag naipasok na ang mga coordinate, madaling ipakita na ang mga puntos na maaaring itayo mula sa mga punto ay may mga coordinate sa hanay ng mga numero na nilikha mula sa mga coordinate ng mga operasyon at [cf. Muaz (1963) o mga pagsasanay para sa seksyon 6.3]. Ang mga square root, siyempre, ay lilitaw dahil sa Pythagorean theorem: kung ang mga punto ay naka-plot, kung gayon ang distansya sa pagitan ng mga ito ay naka-plot (Seksyon 1.6 at Figure 2.4). Sa kabaligtaran, ang pagtatayo ay posible para sa anumang ibinigay na haba I (Pagsasanay 2.3.2).

Larawan 2.4: Pagbuo ng distansya

Kung titingnan mula sa puntong ito ng pananaw, ang mga konstruksyon na may ruler at compass ay mukhang napakaespesyal at hindi malamang na ang mga naturang numero ay ibibigay, halimbawa, Gayunpaman, sinubukan ng mga Griyego nang husto upang malutas ang partikular na problemang ito, na kilala bilang pagdodoble. ang kubo (tinatawag na dahil para madoble ang volume ng isang kubo, kailangan ng isa na i-multiply ang gilid sa Iba pang mga hindi kapani-paniwalang problema ay ang trisection ng isang anggulo at ang pag-squaring ng isang bilog. Ang huling problema ay ang pagbuo ng isang parisukat na katumbas ng lugar sa isang partikular na bilog, o upang bumuo ng isang numero na katumbas ng pareho. Hindi nila kailanman tinalikuran ang mga layuning ito, bagama't nakilala nila ang posibilidad ng isang negatibong solusyon at pinahintulutan ang mga solusyon sa hindi gaanong elementarya. Sa mga sumusunod na seksyon ay makikita natin iba sa kanila.

Ang imposibilidad ng paglutas ng mga problemang ito sa pamamagitan ng straightedge at compass constructions ay nanatiling hindi napatunayan hanggang sa ikalabinsiyam na siglo. Kung tungkol sa pagdodoble ng kubo at trisection ng anggulo, ang imposibilidad ay ipinakita ni Vantzel (1837). Ang kredito para sa paglutas ng mga problemang ito, na pinaghirapan ng pinakamahuhusay na mathematician sa loob ng 2,000 taon, ay bihirang ikredito kay Wantzel, marahil dahil ang kanyang mga pamamaraan ay napalitan ng mas makapangyarihang teoryang Galois.

Ang imposibilidad ng pag-squaring ng bilog ay pinatunayan ni Lindemann (1882), sa isang napakahigpit na paraan, hindi lamang sa pamamagitan ng hindi matukoy na makatwirang mga operasyon at square roots; ito rin ay transendental, ibig sabihin, hindi ito ang ugat ng anumang polynomial equation na may rational coefficients. Tulad ng gawa ni Wantzel, ito ay isang bihirang halimbawa ng isang makabuluhang resulta na napatunayan ng isang menor de edad na matematiko. Sa kaso ni Lindemann, ang paliwanag ay maaaring

Sa isang mahalagang hakbang ay nagawa na nang mapatunayan ni Hermite (1873). Ang kasunod na karera ni Lindemann ay mathematically unremarkable, kahit na nakakahiya. Ang pagtugon sa mga may pag-aalinlangan na nag-aakalang ang kanyang tagumpay ay isang pambihira, itinakda niya ang kanyang mga tingin sa pinakatanyag na hindi nalutas na problema sa matematika, ang Huling Teorama ni Fermat (para sa pinagmulan ng problemang ito, tingnan ang Kabanata 11). Ang kanyang mga pagsisikap ay natapos sa kabiguan sa isang serye ng mga hindi nakakumbinsi na mga papel, bawat isa ay nagwawasto ng isang pagkakamali sa nauna. Fritsch (1984) ay nagsulat ng isang kawili-wiling talambuhay na artikulo sa Lindemann.

Ang materyal sa talatang ito ay maaaring gamitin sa mga ekstrakurikular na aktibidad. Maaari itong iharap sa mga mag-aaral kapwa sa anyo ng isang panayam at sa anyo ng mga ulat ng mag-aaral.

Sa loob ng maraming siglo, maraming pansin ang iginuhit sa mga problema na matagal nang kilala bilang "mga sikat na problema noong unang panahon." Tatlong sikat na problema ang karaniwang lumitaw sa ilalim ng pangalang ito:

1) parisukat ang bilog,

2) trisection ng anggulo,

3) pagdodoble ng kubo.

Ang lahat ng mga gawaing ito ay lumitaw noong sinaunang panahon mula sa mga praktikal na pangangailangan ng mga tao. Sa unang yugto ng kanilang pag-iral, kumilos sila bilang mga gawain sa pagkalkula: ayon sa ilang "mga recipe", tinatayang mga halaga ng kinakailangang dami ay kinakalkula (lugar ng bilog, circumference, atbp.). Sa ikalawang yugto ng kasaysayan ng mga problemang ito, ang mga makabuluhang pagbabago sa kanilang kalikasan ay nagaganap: sila ay nagiging mga geometriko (nakabubuo) na mga problema.

Sa sinaunang Greece, sa panahong ito, binigyan sila ng mga klasikal na pormulasyon:

1) bumuo ng isang parisukat na katumbas ng laki sa isang ibinigay na bilog;

2) hatiin ang ibinigay na anggulo sa tatlong pantay na bahagi;

3) bumuo ng isang gilid ng isang bagong kubo, ang dami nito ay magiging dalawang beses na mas malaki kaysa sa ibinigay na kubo.

Ang lahat ng mga geometric na konstruksyon na ito ay iminungkahi na isagawa sa tulong ng isang compass at isang ruler.

Ang pagiging simple ng pagbabalangkas ng mga gawaing ito at ang "hindi malulutas na mga paghihirap" na nakatagpo sa daan patungo sa kanilang solusyon ay nag-ambag sa paglago ng kanilang katanyagan. Sa pagsisikap na magbigay ng mahigpit na solusyon sa mga problemang ito, ang mga sinaunang Griyegong siyentipiko "sa pagdaan" ay nakakuha ng maraming mahahalagang resulta para sa matematika, na nag-ambag sa pagbabago ng magkakaibang kaalaman sa matematika tungo sa isang independiyenteng deduktibong agham (ang mga Pythagorean, Hippocrates ng Chios at Archimedes ay umalis ng isang partikular na kapansin-pansing marka sa oras na iyon).

Ang problema ng pagdodoble ng kubo.

Ang gawain ng pagdodoble ng isang kubo ay ang mga sumusunod: pag-alam sa gilid ng isang naibigay na kubo, bumuo ng isang gilid ng naturang kubo, ang dami nito ay magiging dalawang beses sa dami ng ibinigay na kubo.

Hayaan ang a ay ang haba ng gilid ng ibinigay na kubo, x ang haba ng gilid ng nais na kubo. Hayaan - ang dami ng kubo na ito, at - ang dami ng nais na kubo, pagkatapos ay ayon sa pormula para sa pagkalkula ng dami ng kubo na mayroon kami na: =, at dahil, ayon sa kondisyon ng problema, dumating kami sa equation.

Ito ay kilala mula sa algebra na ang mga makatwirang ugat ng pinababang equation na may mga integer coefficient ay maaari lamang maging integer at mapabilang sa mga divisors ng libreng termino ng equation. Ngunit ang mga divisors ng numero 2 ay ang mga numero lamang +1, -1, +2, -2, at wala sa mga ito ang nakakatugon sa orihinal na equation. Samakatuwid, ang equation ay walang makatwirang mga ugat, na nangangahulugan na ang problema ng pagdodoble ng kubo ay hindi malulutas gamit ang isang compass at straightedge.

Ang problema ng pagdodoble ng isang kubo na may compass at straightedge ay maaari lamang malutas nang humigit-kumulang. Ipakita natin ang isa sa mga pinakasimpleng pamamaraan para sa isang tinatayang solusyon ng problemang ito.

Hayaan ang AB=BC=a, at ABBC. Bumubuo kami ng AD=AC, pagkatapos ay CD na may katumpakan na 1%. Sa katunayan, ang CD 1.2586…. Kasabay nito = 1.2599….

Ang problema ng pag-squaring ng bilog.

Ang pagbibigay-katwiran sa hindi malulutas ng problema gamit ang isang compass at straightedge.

Ang gawain ng pag-squaring ng isang bilog ay ang mga sumusunod: upang bumuo ng isang parisukat ng pantay na lugar sa isang bilog.

Hayaan - ang radius ng ibinigay na bilog, - ang haba ng gilid ng nais na parisukat. Pagkatapos, mula rito.

Samakatuwid, ang problema ng pag-squaring ng isang bilog ay malulutas kung gagawa tayo ng isang segment na may haba. Kung ang radius ng bilog na ito ay kinuha bilang isang segment ng yunit (= 1), kung gayon ang bagay ay mababawasan sa pagbuo ng isang segment ng haba kasama ang isang segment ng yunit.

Tulad ng alam mo, ang pag-alam sa segment ng yunit, maaari tayong bumuo ng isang compass at isang ruler lamang ng mga segment na ang mga haba ay ipinahayag sa mga tuntunin ng mga rational na numero gamit ang isang may hangganan na hanay ng mga rational na operasyon at pagkuha ng mga square root at, samakatuwid, ay mga algebraic na numero. Sa kasong ito, hindi lahat ng algebraic na numero ay gagamitin. Halimbawa, hindi ka makakagawa ng segment na may haba, atbp.

Noong 1882, pinatunayan ni Lindemann na ito ay transendental. Ito ay sumusunod mula dito na imposibleng bumuo ng isang segment ng haba na may isang compass at isang ruler, at, samakatuwid, ang problema ng pag-squaring ng isang bilog ay hindi malulutas sa mga paraan na ito.

Tinatayang solusyon ng problema gamit ang isang compass at straightedge.

Isaalang-alang ang isa sa mga paraan ng tinatayang pagtatayo ng mga segment ng haba. Ang pamamaraang ito ay ang mga sumusunod. Ang isang-kapat ng bilog na AB na may sentro sa puntong O at isang radius na katumbas ng isa ay nahahati sa kalahati ng puntong C. Sa pagpapatuloy ng diameter CD, itabi ang segment DE na katumbas ng radius. Mula sa punto E, iginuhit namin ang mga sinag na EA at EB sa intersection na may tangent sa punto C. Ang cut-off na segment na AB ay humigit-kumulang katumbas ng haba ng arko AB, at ang nadoble ay ang kalahating bilog.

Ang relatibong error ng approximation na ito ay hindi lalampas sa 0.227%.

Problema sa trisection ng anggulo.

Ang pagbibigay-katwiran sa hindi malulutas ng problema gamit ang isang compass at straightedge.

Ang problema sa trisection ng anggulo ay ang mga sumusunod.: hatiin ang ibinigay na anggulo sa tatlong pantay na bahagi.

Nililimitahan namin ang aming sarili sa paglutas ng problema para sa mga anggulo na hindi hihigit sa 90. Kung ang anggulo ay malabo, kung gayon =180-, kung saan<90, так что, и поэтому задача о трисекции тупого угла сводится к задаче о трисекции острого угла.

Tandaan na (sa pagkakaroon ng isang solong segment) ang problema sa pagbuo ng anggulo (90) ay katumbas ng problema sa pagbuo ng segment x=cos. Sa katunayan, kung ang anggulo ay itinayo, kung gayon ang pagtatayo ng segment na x=cos ay nabawasan sa pagtatayo ng isang right-angled triangle kasama ang hypotenuse at ang acute angle.

Bumalik. Kung ang isang segment na x ay itinayo, pagkatapos ay ang pagbuo ng isang anggulo na ang x \u003d cos ay nabawasan sa pagbuo ng isang tamang tatsulok sa kahabaan ng hypotenuse at binti.

Hayaan ang ibinigay na anggulo, maging ang nais na anggulo, kaya =. Pagkatapos cos=cos 3. Ito ay kilala na cos 3= 4cos-3cos . Samakatuwid, sa pag-aakalang cos = at cos =, dumating tayo sa equation:

cos=4cos-3cos ,

Ang isang segment, at samakatuwid ay isang anggulo, ay maaari lamang mabuo kung ang equation na ito ay may hindi bababa sa isang rational root. Ngunit hindi ito humahawak para sa lahat, at samakatuwid ang problema ng trisection ng isang anggulo, sa pangkalahatan, ay hindi malulutas sa tulong ng isang compass at straightedge. Halimbawa. Sa =60 nakukuha natin ang =1 at ang nahanap na equation ay nasa anyo: . Madaling i-verify na ang equation na ito ay walang anumang makatwirang ugat, na nagpapahiwatig ng imposibilidad ng paghahati ng isang anggulo ng 60 sa tatlong pantay na bahagi gamit ang isang compass at straightedge. Kaya, ang problema ng trisection ng isang anggulo ay hindi malulutas sa pamamagitan ng isang compass at isang straightedge sa mga pangkalahatang tuntunin.

Tinatayang solusyon ng problema gamit ang isang compass at straightedge.

Isaalang-alang ang isa sa mga paraan upang tantiyahin ang solusyon ng problema gamit ang isang compass at ruler, na iminungkahi ni Albert Dürer (1471-1528).

Hayaang ibigay ang anggulong ASB. Mula sa vertex S, inilalarawan namin ang isang bilog na may di-makatwirang radius at ikinonekta ang mga punto ng intersection ng mga gilid ng anggulo sa bilog na may chord AB. Hinahati namin ang chord na ito sa tatlong pantay na bahagi sa mga puntong R at R (A R \u003d R R \u003d RВ). mula sa mga punto A at B, tulad ng mula sa mga sentro, na may radii A R \u003d RВ inilalarawan namin ang mga arko na bumalandra sa bilog sa mga puntong T at T. Isagawa natin ang RSAB. Sa radii A S \u003d BS, gumuhit kami ng mga arko na nagsalubong sa AB sa mga puntong U at U. Ang mga arko AT, SS at TB ay pantay sa bawat isa, dahil kinontrata sila ng pantay na mga chord.

Upang mahanap ang mga trisection point ng anggulo X at X, hinahati ni Dürer ang mga segment na RU at RU sa tatlong pantay na bahagi ng mga puntos na PV at PV. Pagkatapos, sa radii AV at BV, gumuhit kami ng mga arko na nagsalubong sa bilog sa mga puntong X at X. Ikinonekta ang mga puntong ito sa S, nakukuha namin ang dibisyon ng anggulong ito sa tatlong pantay na bahagi na may magandang pagtatantya sa mga tunay na halaga.

Mga gawain sa pagtatayo ng geometriko

Paggamit ng compass at ruler

mag-aaral sa ika-8 baitang

Superbisor: Moskaeva V.N.,

guro sa matematika

Nizhny Novgorod

Panimula

Ang kakayahang makita, ang imahinasyon ay higit na nabibilang sa sining, ang mahigpit na lohika ay ang pribilehiyo ng agham. Ang pagkatuyo ng eksaktong konklusyon at ang kasiglahan ng visual na larawan - "ang yelo at apoy ay hindi naiiba sa bawat isa." Pinagsasama ng geometry ang dalawang magkasalungat na ito.

A. D. Alexandrov

Kapag pumapasok sa paaralan, hindi natin nakakalimutang maglagay ng compass, ruler at protractor sa ating portfolio. Nakakatulong ang mga tool na ito upang makagawa ng karampatang mga guhit at gumuhit nang maganda. Ang mga tool na ito ay ginagamit ng mga inhinyero, arkitekto, manggagawa, taga-disenyo ng mga damit, sapatos, tagabuo, taga-disenyo ng landscape. Bagama't may mga computer, ngunit sa construction site, sa hardin, hindi mo pa ginagamit.

Ang makina ay gumuhit kaagad sa loob ng ilang segundo. Ang isang matematiko ay kailangang gumugol ng maraming oras upang ipaliwanag sa isang wika na naiintindihan ng isang makina kung ano ang dapat nitong gawin - magsulat ng isang programa at ipasok ito sa makina, kaya ang mga taga-disenyo ay madalas na ginusto na magtrabaho gamit ang pinakasimpleng at pinaka sinaunang mga tool - isang compass at isang pinuno.

Ano ang maaaring maging mas madali? Isang makinis na board na may makinis na gilid - isang ruler, dalawang matulis na stick na konektado sa isang dulo - isang compass. Gumuhit ng isang tuwid na linya sa pamamagitan ng dalawang ibinigay na mga punto gamit ang isang ruler. Sa tulong ng isang compass, ang mga bilog ay iginuhit na may isang ibinigay na sentro at isang ibinigay na radius, magtabi ng isang segment na katumbas ng ibinigay na isa.

Ang compass at ang pinuno ay kilala nang higit sa 3 libong taon, kilala na sila, 200-300 taon na ang nakalilipas ay pinalamutian sila ng mga burloloy at mga pattern. Ngunit, sa kabila nito, palagi pa rin nila kaming pinaglilingkuran. Ang pinakasimpleng mga tool ay sapat para sa isang malaking bilang ng mga constructions. Inisip ng mga sinaunang Griyego na posible na magsagawa ng anumang makatwirang pagtatayo gamit ang mga tool na ito, hanggang sa natuklasan nila ang tatlong makabuluhang problema ng unang panahon: "pag-squaring ng bilog", "trisection ng anggulo", "pagdodoble ng kubo".

Samakatuwid, itinuturing kong moderno at mahalaga ang paksa ng aking trabaho para sa aktibidad ng tao sa maraming lugar ng aktibidad ng tao.

Alam ng lahat na ang matematika ay ginagamit sa iba't ibang propesyon at sitwasyon sa buhay. Ang matematika ay isang mahirap na paksa. At karamihan sa mga estudyante ay tinatawag na "mahirap" ang geometry. Ang mga problema sa konstruksiyon ay iba sa tradisyunal na mga problemang geometriko.

Ang paglutas ng mga problema para sa konstruksiyon ay bubuo ng geometric na pag-iisip nang mas ganap at matalas kaysa sa paglutas ng mga problema para sa pagkalkula, at maaaring maging sanhi ng pagkahilig sa trabaho, na humahantong sa pagtaas ng pagkamausisa at pagnanais na palawakin at palalimin ang pag-aaral ng geometry.

Sa kabila ng mayamang makasaysayang nakaraan, ang problema sa paglutas ng mga problema sa pagtatayo ay nananatiling may kaugnayan sa ika-21 siglo. Sa ngayon, ang mga teknolohiya ng computer ay mabilis na umuunlad sa paggamit ng mga graphic editor para sa pagguhit ng mga geometric na bagay. Ang paraan ng paglikha ng mga geometric na bagay ay nagbago dahil sa pagdating ng mga bagong teknolohiya sa computer. Gayunpaman, tulad noong sinaunang panahon, ang mga pangunahing elemento sa pagbuo ng mga geometric na bagay ay ang bilog at ang tuwid na linya, sa madaling salita, ang compass at ang ruler. Sa pagdating ng mga bagong teknolohiya ng computer, lumitaw ang mga bagong problema sa pagtatayo gamit ang parehong mga bagay - isang tuwid na linya at isang bilog. Iyon ang dahilan kung bakit ang problema sa paglutas ng mga problema sa gusali ay nagiging mas may kaugnayan.

Ang programa sa geometry ay nagsasangkot ng pag-aaral ng mga pinakasimpleng pamamaraan at pamamaraan ng konstruksiyon lamang. Ngunit ang aplikasyon ng mga pamamaraan na ito ay kadalasang mahirap. Samakatuwid, ang object ng aking pananaliksik ay mga geometric figure na binuo sa tulong ng isang compass at isang straightedge.

Ang layunin ng aking trabaho: isaalang-alang ang iba't ibang paraan ng pagbuo ng mga geometric na hugis gamit ang compass at ruler.

Mga pamamaraan ng pananaliksik:

ü Pagsusuri ng mga umiiral na paraan ng pagtatayo

ü Maghanap ng mga bagong paraan na madaling gamitin (GMT at Steiner constructions)

Mga gawain:

ü mas maunawaan ang iba't ibang paraan ng pagbuo

ü sundin ang pagbuo ng fragment na ito ng geometry sa kasaysayan ng matematika

ü Ipagpatuloy ang pagbuo ng mga kasanayan sa pananaliksik.

Mula sa kasaysayan ng geometric construction na may compass at ruler.

Ang tradisyunal na limitasyon ng mga tool para sa mga geometric na konstruksyon ay nagsimula noong sinaunang panahon. Sa kanyang aklat na "Mga Simula" si Euclid (ika-3 siglo BC) ay mahigpit na sumusunod sa mga geometriko na konstruksyon na ginagawa ng compass at ruler, bagaman hindi niya binanggit ang mga pangalan ng mga kasangkapan kahit saan. Ang mga limitasyon ay tila dahil sa ang katunayan na ang mga tool na ito ay pinalitan ang lubid, na orihinal na nagsilbi kapwa para sa pagguhit ng mga tuwid na linya at para sa paglalarawan ng mga bilog. Ngunit maraming mga mathematical historian ang nagpapaliwanag sa pagpili ng materyal na ginawa ni Euclid sa pamamagitan ng katotohanan na, kasunod ni Plato at ng mga Pythagorean, itinuring niya lamang ang tuwid na linya at ang bilog bilang "perpektong" mga linya.

Ang sining ng pagbuo ng mga geometric na figure ay lubos na binuo sa Sinaunang Greece. Ang mga sinaunang Greek mathematician 3000 taon na ang nakalilipas ay nagsagawa ng kanilang mga konstruksyon gamit ang dalawang instrumento: isang makinis na tabla na may makinis na gilid - isang ruler at dalawang matulis na stick na konektado sa isang dulo - isang compass. Gayunpaman, ang mga simpleng tool na ito ay napatunayang sapat upang maisagawa ang isang malaking iba't ibang mga constructions. Kahit na tila sa mga sinaunang Griyego na ang anumang matalinong konstruksyon ay maaaring magawa gamit ang mga kasangkapang ito, hanggang sa makatagpo sila ng tatlong tanyag na problema.

Matagal na nilang binago ang anumang rectilinear figure sa tulong ng isang compass at isang ruler sa isang di-makatwirang rectilinear figure na katumbas ng laki nito. Sa partikular, ang anumang rectilinear figure ay binago sa isang parisukat ng pantay na lugar. Samakatuwid, malinaw na ang ideya ay lumitaw upang gawing pangkalahatan ang problemang ito: upang bumuo, gamit ang isang compass at isang straightedge, isang parisukat na ang lugar ay magiging katumbas ng lugar ng ibinigay na bilog. Ang problemang ito ay tinatawag na squaring the circle. Ang mga bakas ng gawaing ito ay makikita kahit na sa sinaunang mga monumento ng Greek at Babylonian noong ikalawang milenyo BC. Gayunpaman, ang direktang tagpuan nito ay matatagpuan sa mga sulating Griyego noong ika-5 siglo BC.

Dalawa pang problema ng unang panahon ang nakakuha ng atensyon ng mga kilalang siyentipiko sa loob ng maraming siglo. Ito ang problema ng pagdodoble ng kubo. Binubuo ito sa paggawa ng isang kubo na may kumpas at pinuno, na may dami ng dalawang beses na mas malaki kaysa sa dami ng ibinigay na kubo. Ang hitsura nito ay nauugnay sa alamat na sa isla ng Delos sa Dagat Aegean, ang orakulo, upang iligtas ang mga naninirahan mula sa salot, ay nag-utos na doblehin ang altar, na may hugis ng isang kubo. At ang pangatlong problema ng trisection ng isang anggulo ay tungkol sa paghahati ng isang anggulo sa tatlong pantay na bahagi gamit ang isang compass at straightedge.

Ang tatlong problemang ito, ang tinatawag na 3 sikat na klasikal na mga problema ng unang panahon, ay nakakuha ng atensyon ng mga kilalang mathematician sa loob ng dalawang milenyo. At sa kalagitnaan lamang ng ika-19 na siglo ay napatunayan ang kanilang hindi malulutas, iyon ay, ang imposibilidad ng mga konstruksyon na ito ay gumagamit lamang ng isang compass at straightedge. Sa matematika, ito ang mga unang resulta sa hindi kalutasan ng mga problema kapag ang mga paraan ng solusyon ay ipinahiwatig. Nakuha ang mga ito sa pamamagitan ng hindi geometry, ngunit algebra (sa pamamagitan ng pagsasalin ng mga problemang ito sa wika ng mga equation), na muling nagbigay-diin sa pagkakaisa ng matematika. Hindi malutas, ang mga problemang ito ay nagpayaman sa matematika na may makabuluhang mga resulta at humantong sa paglikha ng mga bagong uso sa pag-iisip ng matematika.

Ang isa pang kawili-wiling problema sa pagtatayo sa tulong ng isang compass at straightedge ay ang problema ng pagbuo ng isang regular na polygon na may isang naibigay na bilang ng mga panig. Alam ng mga sinaunang Griyego kung paano bumuo ng isang regular na tatsulok, parisukat, regular na pentagon at 15-gon, pati na rin ang lahat ng mga polygon na nakuha mula sa kanila sa pamamagitan ng pagdodoble sa mga gilid, at sila lamang. Noong 1796 lamang, natuklasan ng mahusay na matematikong Aleman na si K.F. Gauss ang isang paraan upang makabuo ng isang regular na 17-gon gamit ang isang compass at isang straightedge at ipinahiwatig ang lahat ng mga halaga ng N kung saan posible na bumuo ng isang regular na N-gon gamit ang ipinahiwatig. ibig sabihin. Si Carl Gauss, isang mag-aaral sa unang taon sa Unibersidad ng Göttingen, ay nalutas ang isang problema na ang agham sa matematika ay sumuko sa higit sa 2,000 taon. Kaya, ang imposibilidad ng pagbuo ng tamang 7, 9, 11, 13, 18, 21, 22, 23, atbp ay napatunayan. mga parisukat.

Ang teorya ng konstruksiyon sa tulong ng isang compass at ruler ay higit na binuo. Isang sagot ang natanggap sa tanong: posible bang malutas ang problema gamit lamang ang isa sa dalawang tool na isinasaalang-alang, at medyo hindi inaasahan. Independyente sa isa't isa, pinatunayan ng Dane G. Mohr noong 1672 at ng Italian L. Mascheroni noong 1797 na ang anumang problema sa pagtatayo na maaaring malutas sa isang compass at isang ruler ay maaaring eksaktong malutas sa isang compass lamang. Mukhang hindi kapani-paniwala, ngunit ito ay totoo. At noong ika-19 na siglo, napatunayan na ang anumang pagtatayo na isinagawa gamit ang isang compass at isang pinuno ay maaaring isagawa lamang sa tulong ng isang pinuno, sa kondisyon na ang isang tiyak na bilog ay ibinigay sa eroplano ng konstruksiyon at ang sentro nito ay ipinahiwatig.

3. Ang pinakasimpleng mga gawain para sa pagbuo ng mga geometric na hugis gamit ang isang compass at ruler

Isaalang-alang ang mga pangunahing (elementarya) na mga konstruksyon na kadalasang nakatagpo sa pagsasanay ng paglutas ng mga problema sa konstruksiyon. Ang mga problema ng ganitong uri ay isinasaalang-alang na sa mga unang kabanata ng kurso sa paaralan.

Gusali 1. Konstruksyon ng isang segment na katumbas ng isang ibinigay na isa.

Ibinigay: haba ng bahagi a.

Build: segment AB ng haba a.

Gusali:

Gusali 2. Pagbubuo ng isang anggulo na katumbas ng isang ibinigay.

Ibinigay:∟AOB.

Build:∟ KMN, katumbas ng ∟ AOB.

Gusali:

Gusali 3. Paghahati ng segment sa kalahati (pagbuo ng gitna ng isang segment).

Ibinigay: segment AB.

Build: Ang punto O ay ang gitnang punto ng AB.

Gusali:

Gusali 4. Paghahati ng isang anggulo sa kalahati (pagbuo ng isang angle bisector).

Ibinigay:∟ ABC.

Build: Ang BD ay ang bisector ∟ABC.

Gusali:

Gusali 5. Konstruksyon ng isang patayo sa isang ibinigay na linya na dumadaan sa isang ibinigay na punto.

a) Ibinigay: linya a, punto A a.

Build:

tuwid a.

Gusali:

b) Ibinigay: linya a, punto A a.

Build: linya sa pamamagitan ng punto A patayo sa

tuwid a.

Gusali:

Gusali 6. Pagbubuo ng isang linya na parallel sa isang ibinigay na linya at dumadaan sa isang ibinigay na punto.

Ibinigay: linya a, punto A a.

Build: Ang isang linya sa punto A ay kahanay ng linya a.

I method (sa pamamagitan ng dalawang perpendiculars).

Gusali:

II na pamamaraan (sa pamamagitan ng paralelogram).

Gusali:

Gusali 7. Konstruksyon ng isang tatsulok sa tatlong panig.

Ibinigay: mga segment ng haba a, b, c.

Build:∆ ABC.

Gusali:

Gusali 8. Konstruksyon ng isang tatsulok na binibigyan ng dalawang panig at isang anggulo sa pagitan nila.

Ibinigay: mga segment ng haba b, c, anggulo α.

Build: tatsulok ABC.

Gusali:

Gusali 9. Konstruksyon ng isang tatsulok na binibigyan ng isang gilid at dalawang magkatabing anggulo.

Ibinigay: segment ng haba c, anggulo α at β.

Build:ΔABC.

Gusali:

Gusali 10. Konstruksyon ng isang tangent sa isang ibinigay na bilog na dumadaan sa isang ibinigay na punto.

Ibinigay: bilog (O), point A sa labas nito.

Build: padaplis sa bilog na ω(O) na dumadaan sa puntong A.

Gusali:

Ang isinasaalang-alang na mga problema ay kasama bilang mga bahagi sa solusyon ng mas kumplikadong mga problema, samakatuwid, sa hinaharap, ang mga yugto ng mga pangunahing konstruksyon ay hindi inilarawan.

Ang solusyon sa mga problema sa pagtatayo ay binubuo ng apat na bahagi:

1. Sa pag-aakalang nalutas na ang problema, gumawa kami ng tinatayang pagguhit ng ninanais na pigura sa pamamagitan ng kamay at pagkatapos ay maingat na suriin ang iginuhit na pigura, sinusubukang hanapin ang gayong mga dependency sa pagitan ng data ng problema at ng mga nais na magpapahintulot sa amin na mabawasan ang problema sa ibang kilala kanina. Ang pinakamahalagang bahagi ng paglutas ng isang problema, na naglalayong gumuhit ng isang plano ng solusyon, ay tinatawag pagsusuri.

2. Kapag ang isang plano ng solusyon ay natagpuan sa ganitong paraan, sila ay nagsasagawa ng alinsunod dito. pagtatayo.

3. Katibayan - upang suriin ang kawastuhan ng plano, sa batayan ng mga kilalang theorems, pinatutunayan nila na ang resultang figure ay nakakatugon sa lahat ng mga kinakailangan ng problema.

4. Mag-aral - nagtatanong ng dalawang katanungan:

1) Sa anumang ibinigay na data, posible ba ang isang solusyon?

2) Ilang solusyon ang mayroon?

Isaalang-alang ang aplikasyon ng mga hakbang na ito sa halimbawa ng paglutas sa sumusunod na problema.

Isang gawain: Bumuo ng isang tatsulok na ibinigay sa base nito b, ang anggulong A na katabi ng base, at ang kabuuan ng dalawang panig.

Pagsusuri: Ipagpalagay natin na ang problema ay nalutas, i.e. natagpuan ang naturang ΔABC, na ang base AC=b, ∟BAC=A at AB+BC=s. Isaalang-alang ngayon ang nagresultang pagguhit. gilid AS, katumbas ng b, ∟BAC=A alam namin kung paano bumuo. Kaya't nananatili itong matatagpuan sa kabilang panig ∟A ganyang punto AT sa kabuuan AB+Sun ay katumbas ng s. nagpapatuloy AB, isantabi ang segment AD, katumbas ng s. Ngayon ang tanong ay dinala sa katotohanan na sa isang tuwid na linya AD makahanap ng ganoong punto AT, na magiging pantay na layo mula sa MULA SA at D. Ang nasabing punto, tulad ng alam natin, ay dapat na nasa patayo na iginuhit sa segment CD sa pamamagitan ng gitna nito. Dot AT ay matatagpuan sa intersection ng patayo na ito sa AD.

Gusali:

1. Gusali ∟A katumbas ng ibinigay na anggulo

2. Itabi ang mga gilid nito AC=b at AD=s

3. Sa gitna ng isang tuwid na bahagi ng linya CD gumuhit ng patayo MAGING

4. MAGING mga krus AD sa punto AT

5. Ikonekta ang mga tuldok AT at MULA SA

6. ΔABC - ninanais.

Patunay:

Isaalang-alang ang nagresultang ΔABC, kung saan ang ∟A ay katumbas ng ibinigay na anggulo (ayon sa item No. 1 ng konstruksiyon). Gilid AC=b(talata Blg. 2) at ang mga partido AB at Araw ang kabuuan ay s (puntos No. 2,3,4). Samakatuwid, ayon sa 1st criterion para sa pagkakapantay-pantay ng mga triangles, ang ΔABC ay ang ninanais.

Pag-aaral:

1.Sa lahat ng data, posible ba ang solusyon?

Isinasaalang-alang ang pagtatayo, napansin namin na ang problema ay hindi posible sa anumang data. Sa katunayan, kung ang sum s ay ibinigay na masyadong maliit kumpara sa b, kung gayon ang patayo MAGING maaaring hindi tumawid sa linya AD(o intersects nito pagpapatuloy lampas sa punto D), sa kasong ito ang gawain ay magiging imposible.

At, anuman ang pagtatayo, makikita na ang gawain ay imposible kung s< b o s=b, dahil hindi maaaring magkaroon ng isang tatsulok kung saan ang kabuuan ng dalawang panig ay magiging mas mababa sa o katumbas ng ikatlong panig.

2. Ilang solusyon ang umiiral?

Sa kaso kapag ang problema ay posible, mayroon lamang itong isang solusyon, i.e. mayroon lamang isang tatsulok na nakakatugon sa mga kinakailangan ng problema, dahil ang intersection ng patayo MAGING na may tuwid na linya AD maaari lamang sa isang punto.


©2015-2019 site
Lahat ng karapatan ay pag-aari ng kanilang mga may-akda. Hindi inaangkin ng site na ito ang pagiging may-akda, ngunit nagbibigay ng libreng paggamit.
Petsa ng paggawa ng page: 2016-04-27