โฮมเพจ » ทำอย่างไร » คอมพิวเตอร์อัลกอริทึมคืออะไรและทำงานอย่างไร

    คอมพิวเตอร์อัลกอริทึมคืออะไรและทำงานอย่างไร

    เว้นแต่ว่าคุณจะเข้าสู่คณิตศาสตร์หรือการเขียนโปรแกรมคำว่า "อัลกอริทึม" อาจเป็นภาษากรีกสำหรับคุณ แต่เป็นหนึ่งในหน่วยการสร้างของทุกสิ่งที่คุณใช้ในการอ่านบทความนี้ นี่คือคำอธิบายโดยย่อเกี่ยวกับสิ่งที่พวกเขาและวิธีการทำงาน.

    ข้อจำกัดความรับผิดชอบ: ฉันไม่ใช่ครูคณิตศาสตร์หรือวิทยาการคอมพิวเตอร์ดังนั้นเงื่อนไขทั้งหมดที่ฉันใช้นั้นเป็นเทคนิค นั่นเป็นเพราะฉันพยายามอธิบายทุกอย่างเป็นภาษาอังกฤษธรรมดาสำหรับผู้คนที่ไม่คุ้นเคยกับคณิตศาสตร์ ที่ถูกกล่าวว่ามีคณิตศาสตร์บางส่วนที่เกี่ยวข้องและที่หลีกเลี่ยงไม่ได้ geeks คณิตศาสตร์รู้สึกฟรีเพื่อแก้ไขหรืออธิบายที่ดีขึ้นในความคิดเห็น แต่โปรดให้มันง่ายสำหรับ disinclined ทางคณิตศาสตร์ในหมู่พวกเรา.

    ภาพโดย Ian Ruotsala

    อัลกอริทึมคืออะไร?

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

    ชุดคำสั่งพื้นฐาน

    สมมติว่าเพื่อนของคุณกำลังพบคุณในร้านขายของชำและคุณกำลังนำทางเขามาหาคุณ คุณพูดสิ่งต่าง ๆ เช่น“ เข้ามาทางประตูด้านขวา”“ ผ่านส่วนปลาทางซ้าย” และ“ ถ้าคุณเห็นนมคุณผ่านฉันไป” อัลกอริทึมทำงานเช่นนั้น เราสามารถใช้ผังงานเพื่อแสดงคำแนะนำตามเกณฑ์ที่เราทราบล่วงหน้าหรือค้นหาในระหว่างกระบวนการ.

    (ภาพที่มีชื่อว่า“ Icebreaking Routine” แก้ไข: ความอนุเคราะห์จาก Trigger และ Freewheel)

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

    กราฟ

    ลองใช้กราฟเพื่ออธิบายวิธีต่างๆที่เราสามารถบอกทิศทางได้.

    เราสามารถแสดงกราฟนี้เป็นการเชื่อมต่อระหว่างคะแนนทั้งหมด ในการทำซ้ำภาพนี้เราสามารถให้คำแนะนำกับคนอื่น.

    วิธีที่ 1

    เราสามารถแสดงสิ่งนี้เป็นชุดของจุดและข้อมูลจะเป็นไปตามรูปแบบมาตรฐานของกราฟ = (x1, y1), (x2, y2), …, (xn, yn).

    กราฟ = (0,0), (3,0), (3,3), (5,5), (7,10), (8,7), (9,4), (10,1)

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

    วิธีที่ 2

    อีกสิ่งที่เราทำได้คือให้จุดเริ่มต้นความชันของเส้นแบ่งระหว่างจุดนั้นกับจุดต่อไปและระบุตำแหน่งที่จะคาดหวังจุดต่อไปโดยใช้รูปแบบมาตรฐานของกราฟ = (จุดเริ่มต้น), [m1, x1, h1 ], …, [mn, xn, hn] ที่นี่ตัวแปร 'm' แสดงถึงความชันของเส้น 'x' หมายถึงทิศทางที่จะนับใน (ไม่ว่าจะเป็น x หรือ y) และ 'h' จะบอกคุณว่า มากมายที่จะนับในทิศทางดังกล่าวคุณยังสามารถจำจุดหลังจากการเคลื่อนไหวแต่ละครั้ง.

    กราฟ = (0,0), [0, x, 3], [0, y, 3], [1, x, 2], [2.5, x, 2], [-3, x, 1], [-3, x, 1], [-3, x, 1]

    คุณจะได้กราฟที่เหมือนกัน คุณสามารถเห็นได้ว่าคำสามคำสุดท้ายในนิพจน์นี้เหมือนกันดังนั้นเราอาจสามารถตัดทอนได้โดยเพียงแค่พูดว่า“ ทำซ้ำสามครั้ง” ในบางวิธี สมมติว่าเมื่อใดก็ตามที่คุณเห็นตัวแปร 'R' ปรากฏหมายถึงการทำซ้ำสิ่งสุดท้าย พวกเราสามารถทำได้:

    กราฟ = (0,0), [0, x, 3], [0, y, 3], [1, x, 2], [2.5, x, 2], [-3, x, 1], [R = 2]

    ถ้าคะแนนแต่ละจุดไม่สำคัญจริงๆและมีเพียงกราฟเองเท่านั้น? เราสามารถรวมสามส่วนที่ผ่านมาดังนี้:

    กราฟ = (0,0), [0, x, 3], [0, y, 3], [1, x, 2], [2.5, x, 2], [-3, x, 3]

    มันสั้นลงเล็กน้อยจากที่เคยเป็นมาก่อน.

    วิธีที่ 3

    ลองทำอีกวิธีนี้.

    y = 0, 0≤x≤3
    x = 0, 0≤y≤3
    y = x, 3≤x≤5
    y = 2.5x-7.5, 5≤x≤7
    y = -3x + 29, 7≤x≤8
    y = -3x + 29, 8≤x≤9
    y = -3x + 29, 9≤x≤10

    ที่นี่เรามีมันในแง่พีชคณิตบริสุทธิ์ อีกครั้งหากคะแนนไม่สำคัญและมีเพียงกราฟเราสามารถรวมสามรายการสุดท้าย.

    y = 0, 0≤x≤3
    x = 0, 0≤y≤3
    y = x, 3≤x≤5
    y = 2.5x-7.5, 5≤x≤7
    y = -3x + 29, 7≤x≤10

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

    อีกจุดสำคัญที่ควรทราบคือแต่ละวิธีอาศัยคีย์ ชุดคำสั่งแต่ละชุดไม่มีประโยชน์เว้นแต่คุณจะรู้ว่าต้องทำอย่างไรกับพวกเขา หากคุณไม่ทราบว่าคุณควรจะพล็อตแต่ละจุดและเชื่อมโยงจุดต่าง ๆ จุดแรกจะไม่มีความหมายอะไรเลย หากคุณไม่ทราบว่าตัวแปรแต่ละตัวมีความหมายอย่างไรในวิธีที่สองคุณจะไม่ทราบวิธีการใช้ตัวแปรเช่นเดียวกับกุญแจในการเข้ารหัส คีย์นั้นยังเป็นส่วนสำคัญของการใช้อัลกอริทึมและบ่อยครั้งที่คีย์นั้นพบได้ในชุมชนหรือผ่าน“ มาตรฐาน”

    การบีบอัดไฟล์

    เมื่อคุณดาวน์โหลดไฟล์. zip คุณจะแตกเนื้อหาเพื่อให้คุณสามารถใช้สิ่งที่อยู่ข้างในได้ ทุกวันนี้ระบบปฏิบัติการส่วนใหญ่สามารถดำดิ่งลงในไฟล์. zip เหมือนเป็นโฟลเดอร์ปกติโดยทำทุกอย่างในพื้นหลัง บนเครื่อง Windows 95 ของฉันเมื่อสิบปีที่แล้วฉันต้องแยกทุกอย่างด้วยตนเองก่อนที่จะเห็นอะไรมากกว่าชื่อไฟล์ที่อยู่ภายใน นั่นเป็นเพราะสิ่งที่ถูกเก็บไว้ในดิสก์เป็นไฟล์. zip ไม่ได้อยู่ในรูปแบบที่ใช้งานได้ นึกถึงโซฟาที่ดึงออกได้ เมื่อคุณต้องการใช้มันเป็นเตียงคุณจะต้องเอาหมอนอิงออกแล้วคลี่มันออกซึ่งใช้พื้นที่มากขึ้น เมื่อคุณไม่ต้องการใช้หรือคุณต้องการขนส่งมันคุณสามารถพับมันกลับขึ้นมาได้.

    อัลกอริทึมการบีบอัดจะถูกปรับและปรับให้เหมาะสมที่สุดสำหรับประเภทของไฟล์ที่ถูกกำหนดเป็นเป้าหมาย ตัวอย่างเช่นรูปแบบเสียงแต่ละวิธีใช้วิธีการจัดเก็บข้อมูลที่แตกต่างกันเมื่อถอดรหัสโดยตัวแปลงสัญญาณเสียงจะให้ไฟล์เสียงที่คล้ายกับรูปแบบของคลื่นต้นฉบับ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับความแตกต่างเหล่านั้นลองดูบทความก่อนหน้าของเราความแตกต่างระหว่างรูปแบบเสียงทั้งหมดนั้นคืออะไร ฟอร์แมตเสียงแบบ Lossless และไฟล์. zip มีสิ่งหนึ่งที่เหมือนกัน: ทั้งคู่ให้ข้อมูลต้นฉบับในรูปแบบที่แน่นอนหลังจากกระบวนการคลายการบีบอัด ตัวแปลงสัญญาณเสียงที่สูญหายใช้วิธีการอื่นเพื่อประหยัดพื้นที่ดิสก์เช่นความถี่การตัดแต่งที่หูมนุษย์ไม่สามารถได้ยินและปรับรูปคลื่นให้เรียบเพื่อกำจัดรายละเอียดบางอย่าง ในที่สุดในขณะที่เราอาจไม่สามารถได้ยินความแตกต่างระหว่าง MP3 และแทร็กซีดีได้จริง ๆ แล้วมีการขาดข้อมูลในอดีต.

    การเข้ารหัสข้อมูล

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


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