ใครเป็นผู้สร้างแนวคิดของการสร้างลูปแรก


53
while (1) {
      if (1+1==2) {
             print "Yes, you paid attention in Preschool!";
      } else {
             print "Wait... I thought 1+1=2";
      }
 }

ในฐานะนักพัฒนาเราทุกคนต้องใช้ลูปบ่อยมาก เรารู้ว่า. สิ่งที่ฉันสงสัยคือใครคิดว่าความคิดที่จะมีลูป? ภาษาใดบ้างที่มีการแนะนำลูป โครงสร้างลูปแรกคืออะไร มันเป็นwhileวงไหม forห่วง? etc?


22
Charles Babbage และ Ada Lovelace เป็นไปได้มากที่สุด
mcfinnigan

28
มันถูกคิดค้นในคำแนะนำแชมพู, ล้าง, ฟอง, ทำซ้ำ :-)
Guy Sirton

13
@GuySirton อย่าโง่นั่นเป็นการเรียกซ้ำ
mowwwalker

18
@ user838584 - ถ้าเป็นการเรียกซ้ำแต่ละรายการrepeatจะเรียกอีกแบบหนึ่งrepeat- คุณจะไม่จบเลย ฉันคิดว่าบางทีผู้หญิงอ่านคำแนะนำแชมพูด้วยวิธีนี้ แต่ผู้ชายก็อ่านมันซ้ำแล้วซ้ำอีกและใช้เวลาเพียงไม่กี่นาทีในการสระผม
Steve314

3
คอมพิวเตอร์ที่ไม่มีลูปเป็นเครื่องคิดเลข
starblue

คำตอบ:


102

ดังที่mouvicielและEmilio Garavagliaตั้งข้อสังเกตแนวคิดนี้มีมาก่อนการคำนวณ อย่างไรก็ตามตัวอย่างแรกของซอฟแวร์ห่วงเป็นห่วงเอดาเลิฟเลซใช้ในการคำนวณBernoulli ตัวเลขที่กล่าวไว้ในหมายเหตุ Gของการแปลของเธอร่างของเครื่องมือวิเคราะห์การประดิษฐ์คิดค้นโดย Charles BabbageโดยLF Menabrea Menabrea ความสามารถในการวิเคราะห์ของลูปนั้นถูกบันทึกไว้ตั้งแต่ต้น:

สิ่งนี้ถูกเข้าใจขอให้เราในตอนต้นของชุดปฏิบัติการที่เราต้องการดำเนินการวางเข็ม C บนดิวิชั่น 2, เข็ม B บนดิวิชั่น 5 และเข็ม A บนดิวิชั่น 9 ให้เราอนุญาต ค้อนของหน้าปัด C เพื่อตี; มันจะตีสองครั้งและในเวลาเดียวกันเข็ม B จะผ่านสองฝ่าย หลังจะระบุหมายเลข 7 ซึ่งประสบความสำเร็จหมายเลข 5 ในคอลัมน์ของความแตกต่างแรก ถ้าตอนนี้เราอนุญาตให้ค้อนของปุ่มหมุน B ตีกันมันจะตีเจ็ดครั้งในระหว่างที่เข็ม A จะเลื่อนไปถึงเจ็ดแผนก สิ่งเหล่านี้ที่ถูกเพิ่มเข้าไปในเก้าที่ทำเครื่องหมายไว้แล้วโดยมันจะให้เลข 16 ซึ่งเป็นจำนวนสแควร์ต่อเนื่องถึง 9 ถ้าเราแนะนำการดำเนินการเหล่านี้เริ่มต้นด้วยเข็ม C ซึ่งจะถูกทิ้งไว้ในส่วนที่ 2 เสมอ

กลไกการวนซ้ำของเครื่องมือวิเคราะห์นั้นได้รับการถ่ายทอดโดยตรงจากเครื่องทอผ้าของโจเซฟมารี Jacquard (2344) ดังที่ได้กล่าวไว้ในบันทึกประจำวันของเมนาเบรีย:

ตอนนี้มันจะถูกถามว่าเครื่องจักรสามารถของตัวเองและโดยไม่ต้องขอความช่วยเหลือจากมือของมนุษย์สมมติว่าการจัดการต่อเนื่องที่เหมาะสมกับการดำเนินงาน การแก้ปัญหานี้เกิดขึ้นจากอุปกรณ์ของ Jacquard ซึ่งใช้สำหรับการผลิตสิ่งของที่ได้รับการจัดเรียงแล้วในลักษณะดังต่อไปนี้: -

โดยทั่วไปแล้วด้ายสองชนิดจะแตกต่างกันไปในผ้าทอ หนึ่งคือด้ายยืนหรือด้ายยาวอีกเส้นหนึ่งเป็นวูฟหรือด้ายขวางซึ่งถูกถ่ายทอดโดยเครื่องมือที่เรียกว่ากระสวยและที่ตัดด้ายยาวหรือบิดงอ เมื่อจำเป็นต้องมีสิ่งที่มีการเรียงซ้อนกันเป็นสิ่งจำเป็นในการป้องกันไม่ให้เธรดบางตัวข้าม woof และสิ่งนี้ตามการสืบทอดที่พิจารณาจากลักษณะของการออกแบบที่จะทำซ้ำ ก่อนหน้านี้กระบวนการนี้มีความยาวและยากลำบากและเป็นสิ่งจำเป็นที่คนงานโดยการเข้าร่วมการออกแบบที่เขาต้องคัดลอกควรควบคุมการเคลื่อนไหวที่ต้องใช้ ดังนั้นราคาที่สูงขึ้นของคำอธิบายของสิ่งนี้โดยเฉพาะอย่างยิ่งถ้าหัวข้อของสีต่างๆเข้าสู่ผ้า เพื่อให้การผลิตง่ายขึ้น Jacquard คิดแผนของการเชื่อมต่อกลุ่มของแต่ละกลุ่มที่จะทำหน้าที่ร่วมกันด้วยคันโยกที่แตกต่างกันของกลุ่มนั้นโดยเฉพาะ คันโยกเหล่านี้ทั้งหมดสิ้นสุดลงในแท่งซึ่งรวมเข้าด้วยกันในชุดเดียวโดยปกติจะมีรูปแบบของ parallelopiped ที่มีฐานสี่เหลี่ยม แท่งเป็นทรงกระบอกและแยกออกจากกันด้วยช่วงเวลาเล็ก ๆ กระบวนการของการเพิ่มเธรดจึงได้รับการแก้ไขในการเคลื่อนแขนคันโยกเหล่านี้ตามลำดับที่จำเป็น ในการทำให้เกิดผลนี้จะมีการวางแผ่นกระดาษแข็งรูปสี่เหลี่ยมขนาดค่อนข้างใหญ่กว่าส่วนของชุดก้านแขน หากแผ่นงานนี้ถูกนำไปใช้กับฐานของบันเดิลและการเคลื่อนไหวที่ก้าวหน้าจะได้รับการสื่อสารไปยังการวางบอร์ดหลังนี้จะย้ายไปพร้อมกับแท่งทั้งหมดของมัด และดังนั้นกระทู้ที่เชื่อมต่อกับแต่ละคน แต่ถ้ากระดาษแข็งแทนที่จะเป็นแบบธรรมดาจะถูกเจาะด้วยรูที่ตรงกับแขนขาของคันโยกที่พบมันจากนั้นเนื่องจากคันโยกแต่ละอันจะผ่านทะลุออกจากกระดานในขณะที่เคลื่อนไหวหลังพวกเขาทั้งหมดจะยังคงอยู่ใน สถานที่ เราจึงเห็นว่ามันเป็นเรื่องง่ายดังนั้นการกำหนดตำแหน่งของหลุมในกระดาษแข็งที่ในช่วงเวลาใดก็ตามจะมีคันโยกจำนวนหนึ่งและจากการยกของด้ายในขณะที่ส่วนที่เหลือยังคงอยู่ที่พวกเขา มี หากว่ากระบวนการนี้ทำซ้ำอย่างต่อเนื่องตามกฎหมายที่ระบุโดยรูปแบบที่จะดำเนินการเรารับรู้ว่ารูปแบบนี้อาจถูกทำซ้ำบนสิ่งของ เพื่อจุดประสงค์นี้เราต้องการเพียงเขียนการ์ดตามกฎหมายที่กำหนด และจัดเรียงให้เหมาะสมตามลำดับ จากนั้นโดยทำให้พวกเขาผ่านคานรูปหลายเหลี่ยมซึ่งเชื่อมต่อกันเพื่อที่จะเปลี่ยนหน้าใหม่สำหรับทุกจังหวะของกระสวยซึ่งใบหน้านั้นจะถูกผลักให้ขนานกับตัวเองกับชุดคันโยก - แขน กระทู้จะถูกดำเนินการอย่างสม่ำเสมอ ด้วยเหตุนี้เราจึงเห็นว่าเนื้อเยื่อที่ได้รับการผลิตออกมานั้นมีความแม่นยำและรวดเร็ว

เครื่องทอผ้าของ Jacquard เป็นแอปพลิเคชั่นแรกของการวนรอบในบริบทของการสั่งซื้อเครื่องจักรเพื่อผลิตเอาต์พุตซ้ำ :

แนวคิดเบื้องหลัง Jacquard-loom คือระบบของการ์ดเจาะและตะขอ การ์ดมีความหนามากและมีรูสี่เหลี่ยมเจาะ ตะขอและเข็มที่ใช้ในการทอนั้นถูกชี้นำโดยรูเหล่านี้ในกระดาษแข็ง เมื่อตะขอสัมผัสกับการ์ดพวกเขาจะหยุดนิ่งจนกว่าจะเจอรูเจาะหนึ่งรู จากนั้นตะขอก็สามารถทะลุผ่านรูด้วยเข็มสอดด้ายอื่นได้ รูปแบบที่ซับซ้อนนั้นเกิดขึ้นได้จากการที่ไพ่หลายใบเรียงต่อกันและ / หรือใช้ซ้ำหลายครั้ง

เครื่องทอผ้าของ Jacquard ได้รับการยอมรับว่าเป็นรูปแบบแรก ๆ ของโปรแกรมที่จัดเก็บ :

หากแรงผลักดันที่อยู่เบื้องหลังการพัฒนาของเครื่องคำนวณส่วนใหญ่ที่กล่าวถึงได้เกิดขึ้นจากการคำนวณเชิงตัวเลขแรงจูงใจที่นำไปสู่รูปแบบแรกสุดของ 'โปรแกรมที่เก็บไว้' นั้นมาจากแหล่งที่แตกต่างกันมาก: อุตสาหกรรมสิ่งทอ เราได้เห็นมาแล้วก่อนหน้านี้ว่าหนึ่งในแง่มุมพื้นฐานของระบบคอมพิวเตอร์คือแนวคิดของการแสดงข้อมูลและถึงแม้ว่าเรายังไม่ได้ทำอย่างชัดเจนการประยุกต์ใช้ความคิดนี้สามารถมองเห็นได้ในสิ่งประดิษฐ์ทั้งหมดที่เราได้ตรวจสอบจนถึงตอนนี้: ในการพัฒนาการเป็นตัวแทนที่เป็นลายลักษณ์อักษรสำหรับค่าตัวเลขและแนวกลไกที่ผุดขึ้นมาจากสิ่งเหล่านี้ ดังนั้นการจัดตำแหน่งของก้อนกรวดบนกรอบลูกคิดการวางเคียงกันของเครื่องชั่งเคลื่อนไหวบนสไลด์กฎและการกำหนดค่าของเกียร์เฟืองบนอุปกรณ์ของ Schickard, Pascal และ Leibniz เป็นตัวอย่างของเทคนิคการดำเนินการที่พยายามลดความซับซ้อนของกระบวนการทางคณิตศาสตร์ที่ซับซ้อน อย่างไรก็ตามมีหมวดหมู่ข้อมูลและการเป็นตัวแทนของมันนอกเหนือจากจำนวนที่สามารถดำเนินการกระบวนการคำนวณได้ เทคโนโลยีการทอผ้าที่พัฒนาโดย Joseph-Marie Jacquard ในปี 1801 แสดงให้เห็นตัวอย่างหนึ่งของประเภทดังกล่าว

Charles Babbage ยังปรับขั้นตอนการจัดเก็บของ Jacquard ลงในAnalytical Engineการมีหรือไม่มีรูสื่อสารคำสั่งเปิด - ปิดง่าย ๆ กับเครื่อง:

เครื่องมือวิเคราะห์มีคุณสมบัติที่สำคัญมากมายที่พบในคอมพิวเตอร์ดิจิตอลที่ทันสมัย มันเป็นโปรแกรมที่ใช้การ์ดเจาะรูความคิดที่ยืมมาจากเครื่องทอผ้า Jacquard ที่ใช้สำหรับทอผ้าลวดลายซับซ้อนในสิ่งทอ เอ็นจิ้นมี 'ร้านค้า' ที่สามารถเก็บตัวเลขและผลลัพธ์ระดับกลางได้และ 'มิลล์' แยกต่างหากซึ่งดำเนินการประมวลผลทางคณิตศาสตร์ มันมีเพลงภายในของฟังก์ชันเลขคณิตทั้งสี่และสามารถทำการคูณและหารโดยตรงได้ มันยังมีความสามารถในการทำงานที่เรามีชื่อที่ทันสมัย: เงื่อนไขการแยก, ลูป (การวนซ้ำ), ไมโครโปรแกรมมิง, การประมวลผลแบบขนาน, การวนซ้ำ, การล็อค, การสำรวจและการสร้างพัลส์ มันมีเอาท์พุทที่หลากหลายรวมถึงการพิมพ์สำเนาถาวรการ์ดเจาะรู

วิเคราะห์ Engine ของสาขาเงื่อนไขรวมกับแรงบันดาลใจ Jacquard ลูปกลและจัดเก็บเป็นขั้นตอน dauntingly คล้ายกัน (แนวคิด) ไปตัวอย่างของคุณโดยเฉพาะอย่างยิ่งถ้าเราเพิ่มเครื่องพิมพ์แบบเบจในการผสมสำหรับprint "...";ชิ้นส่วน

เห็นได้ชัดว่าลูปกลก่อนวันจริง Jacquard กี่ของอุปกรณ์ตัวแรกที่รู้จักกันในการทำงานในแฟชั่นห่วงเป็นAntikythera กลไก (100 คริสตศักราช) และถ้าเรามองให้ดียิ่งขึ้นในประวัติศาสตร์ (และกิจการอย่างน่ากลัวปิดหัวข้อ) sundialsอาจจะเป็นที่เก่าแก่ที่สุดที่มนุษย์สร้างกลไก เมื่อความเข้าใจของลูปปรากฏชัดตามรูปแบบการเกิดซ้ำของวงโคจรของดวงอาทิตย์และดวงดาวอื่น ๆ

อย่างไรก็ตามฉันคิดว่าในบริบทของการคำนวณ (และไม่ใช่การคำนวณหรืออย่างอื่น), อัลกอริธึมการคำนวณเบอร์และตัวเลขของ Adou Bernoulli สามารถให้เครดิตสำหรับการแนะนำลูปร่วมกันอย่างน้อยบางเครดิตกับเครื่องทอผ้าของ Jacquard โดยตรง มัน.


3
ก่อน Jacquard กี่ของคุณสามารถหาลูปกลใน Carillons เช่นหนึ่งใน Bruges ที่ระฆังจะถูกควบคุมโดยการหมุนของกระบอก
mouviciel

6
@mouviciel ฉันเห็นความประหลาดของคุณและฉันยกกลไก Antikythera ให้คุณ ; P
yannis

2
+1 สำหรับคำตอบสารานุกรมรวมถึงคอมพิวเตอร์ 2,000 y / o!
mouviciel

2
คำตอบที่สวยงามนี้ทำให้ฉันชื่นชอบคำถาม ไม่เพียง แต่ตอบคำถามเท่านั้น แต่ยังเป็นตัวอย่างของ "วิธีตอบคำถาม" ทำได้ดีมากที่รัก
Chani

ยอมรับคำตอบนี้เพราะมันเป็นทั้งข้อสรุปสารานุกรมและธรรมดาที่สุดยอดมาก!
ไดนามิก

50

วนรอบการคำนวณก่อนหน้านี้ คุณสามารถค้นหาได้ในโน้ตดนตรีเร็วเท่าที่ Gregorian chant:

ทำเครื่องหมายซ้ำ


2
นี่อาจเป็นคำตอบที่ดีถ้ามีการเพิ่มรายละเอียดอีกเล็กน้อย ยังคงเป็นงานที่ดี
ไดนามิก

โปรดให้การอ้างอิงเพิ่มเติม (วันที่แรกสุด, โน้ตดนตรีเร็วที่สุดเพื่อสร้างโครงสร้างวนซ้ำ / ซ้ำ)
Skippy Fastol

@SkippyFastol อยู่ในบทความนั้น: en.wikipedia.org/wiki/Repeat_sign#Other_notation
cwallenpoole

32

แนวคิดของ "ทำอีกครั้ง" เป็นอย่างใด "ดั้งเดิม" ต่อการรับรู้ของมนุษย์ คุณสามารถบอกสิ่งนี้กับเด็กที่เพิ่งเรียนรู้ภาษาธรรมชาติน้อยที่สุด

ในระบบที่ไม่ต่อเนื่องลูปที่พบในทุกเครื่องสถานะ จำกัด เมื่อคุณยอมรับคุณสามารถเข้าถึงสภาวะคุณalredy ได้รับก่อน

ลูปที่ง่ายที่สุดคือวงรอบระหว่างสองสถานะ (นาฬิกา) จากจำนวนที่สูงขึ้นของรัฐใด ๆ ที่อาจเป็นผลมาจากการนับจากมันทุกเครื่องที่ซับซ้อนมากขึ้นจะถูกสร้างขึ้นเมื่อ "เคาน์เตอร์" เพิ่มขึ้นด้วยนาฬิกาที่สามารถทำให้ "กระโดด" เมื่อธงบางอย่างเป็นตัวแทนการดำเนินงาน combinatory บางอย่าง นี่คือแกนหลักของเครื่อง Von Neumann ทุกเครื่องที่ใช้ไมโครโปรเซสเซอร์

ในรหัสเครื่องการกระโดดจะถูกให้รหัสJP-Z-nnnn(โดยที่ Z คือแฟล็ก yate whatefer ตามเงื่อนไขของคุณบน) ในภาษาระดับสูงกว่านี้แปลเกือบจะทันที

if(z) goto x;

การวนซ้ำนั้นไม่มีอะไรมากไปกว่าgotoที่ฉลาก x นำหน้าคำสั่ง goto นั้นเอง

ทุกสูตรอื่น ๆ (สำหรับทำในขณะที่อื่น ๆ ) เป็นเพียง "น้ำตาลประโยค" ให้ดีขึ้นเชื่อป่าข้ามไปในกรณีที่พบบ่อยมากของการทำซ้ำจนกว่าสิ่งที่เกิดขึ้น


4

แนวคิดของการวนซ้ำเป็นหนึ่งในสิ่งต่าง ๆ ที่แยกความแตกต่างระหว่างคอมพิวเตอร์แบบเต็มรูปแบบกับเครื่องคำนวณอย่างง่าย หากระบบไม่รองรับการวนซ้ำระบบจะไม่ทำให้เสร็จสมบูรณ์ดังนั้นจึงไม่ใช่คอมพิวเตอร์

การออกแบบทัวริงที่สมบูรณ์แบบครั้งแรกคือเครื่องยนต์วิเคราะห์ของ Babbage ดังนั้นจึงต้องมีแนวคิดของการวนซ้ำ อย่างไรก็ตามมีระบบที่มีการวนลูป แต่ไม่ทัวริงเสร็จสมบูรณ์ (เพราะพวกเขาละเว้นอย่างอื่น) แม้ว่างานของ Babbage อาจเป็นจุดเริ่มต้นที่ดี


6
แคลคูลัสแลมบ์ดาไม่มีลูป (และไม่มีเงื่อนไขหรือการกระโดด) แต่มันก็สมบูรณ์แบบ การเรียกซ้ำมีประสิทธิภาพเท่ากับการทำซ้ำ

3
คุณสามารถเขียนวนซ้ำไปยังฟังก์ชันเวียนเกิดซ้ำและกำจัดลูปได้
ratchet freak

5
บทความวิกิพีเดียในลูปอธิบายการเรียกซ้ำเป็นวิธีการแสดงลูปแทนที่จะเป็นแนวคิดที่ไม่เกี่ยวข้องทั้งหมด en.wikipedia.org/wiki/Program_loop#Loopsสำหรับซีพียูที่ไม่มีลูปพวกเขามีเครื่องมือที่จำเป็นในการติดตั้งพวกมัน (กระโดดไปยังที่อยู่หน่วยความจำ
Arbitary

8
แม่นยำการเรียกซ้ำสามารถใช้เพื่อแสดงลูป มันเป็นแนวคิดที่แตกต่างกันมากถึงแม้ว่าพวกเขาจะมีความผิดปกติซึ่งกันและกัน แก้วกาแฟไม่ใช่โดนัทเพียงเพราะนักวิชาการด้านบนกล่าวหาว่าพวกเขาสับสน

4
จริง แต่ระบบทัวริงที่สมบูรณ์จะต้องมีวิธีการแสดงแนวคิดของการดำเนินการลำดับเดียวกันหลายครั้งกลไกสามารถเรียกซ้ำหรือกระโดดไปข้างหลังในรายการคำสั่งหรือสิ่งอื่นที่ประสบผลเช่นเดียวกัน หากระบบไม่มีวิธีการทำซ้ำชุดคำสั่งใด ๆ (นอกเหนือจากการทำซ้ำคำสั่งในรายการทางกายภาพ) แสดงว่าระบบไม่สามารถทำให้เสร็จสมบูรณ์ได้ เครื่องมือวิเคราะห์กำลังทัวริงเสร็จสมบูรณ์ดังนั้นจึงต้องใช้การวนซ้ำในรูปแบบเดียวหรืออีกรูปแบบหนึ่ง
GordonM

3

สมมติว่าคุณหมายถึงภาษาการเขียนโปรแกรมคอมพิวเตอร์ข้อความที่ทันสมัย

Algol60มี "FOR", "DO", "จนกว่าจะถึง" และ "WHILE" ดังนั้นก่อนปี 1960

พิพิธภัณฑ์ Retro คอมพิวเตอร์มีไม่กี่ภาษาก่อน 1960

Kvikkalkulภาษาจากยุค 50 สำหรับการเขียนโปรแกรมย่อยนิวเคลียร์สวีเดนมีเพียง GOTO (อย่างไรก็ตาม Kvikkalkul นั้นเกือบจะเป็นการหลอกลวงจาก '90s ไม่ใช่ภาษาประวัติศาสตร์จริง ๆ )

Plankalkülโดย Konrad Zuse เป็นรุ่นแรกสุดที่ฉันสามารถหาได้ มันมีโครงสร้าง "für"


Plankalkülไม่ได้ตีพิมพ์เป็นหลักจนกระทั่งเมื่อไม่นานมานี้และ Kvikkalkul มีข่าวลือมานานแล้วว่าเป็นเรื่องหลอกลวง ในแง่นั้นเครดิตอาจต้องไปที่ John Backus และทีมFORTRANซึ่งมีคอมไพเลอร์ทำงานอยู่ในสนามในปี 1957 พร้อมกับDOลูป
Ross Patterson

2

การทำงานของทั้ง Liebniz และ Newton มีอัลกอริธึมที่มีการสร้างลูป Liebniz สร้างเครื่องคิดเลขเชิงกลและคาดการณ์ (เหมือนที่ Lovelace ทำมาหลายปีต่อมา) เกี่ยวกับเครื่องจักรเพื่อทำการวิเคราะห์ที่ซับซ้อนยิ่งขึ้น บันทึกของเขาเกี่ยวกับความคิดเหล่านี้เป็นภาพร่าง แต่พวกเขาอธิบายถึงเหตุผลที่ไม่แน่นอนกับลูป

อย่างไรก็ตามแนวคิดของการวนซ้ำและนับลูปควบคุมรวมถึงสิ่งที่เราจะเรียกในขณะที่ลูปถูกกล่าวถึงในงานของชายผู้ซึ่งอัลกอริทึมถูกตั้งชื่อ: Muhammad ibn Musa al-Khwarizmiจากศตวรรษที่สิบเก้า หนังสือเล่มที่สองของเขาอัล - คิตาบอัล - mukhtasar fi hisab อัล - jabr wa'l-muqabala (นิรนามเลวิซลิเบต, ลิเบอซาเบล, ลิเบอซาลิส ฯลฯ ) (บทสรุปเกี่ยวกับการคำนวณ .

แน่นอนว่าอัลควาริสมีพึ่งพาชาวกรีกโบราณบางส่วน ในบางจุดเราอาจกลับไปที่เวอร์ชั่นของ Adam และ Eve ของการล้างฟองทำซ้ำ

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ Al-Khwārizmīและงานของเขาโปรดดู:

http://www-groups.dcs.st-andrews.ac.uk/history/Mathematicians/Al-Khwarizmi.html

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.