วิทยาศาสตร์คอมพิวเตอร์

ถาม - ตอบสำหรับนักเรียนนักวิจัยและผู้ปฏิบัติงานด้านวิทยาการคอมพิวเตอร์

2
การเรียงลำดับจำนวนเต็มเป็นไปได้ใน O (n) ในโมเดล transdichotomous หรือไม่?
สำหรับความรู้ของฉันไม่มีอัลกอริทึมกรณีที่เลวร้ายที่สุดที่แก้ปัญหาต่อไปนี้:O(n)O(n)O(n) กำหนดลำดับความยาวnnnซึ่งประกอบด้วยจำนวนเต็ม จำกัด หาการเปลี่ยนแปลงที่ทุกองค์ประกอบน้อยกว่าหรือเท่ากับตัวตายตัวแทนของมัน แต่มีข้อพิสูจน์ว่ามันไม่มีอยู่ในแบบจำลองการคำนวณแบบ transdichotomous ? โปรดทราบว่าฉันไม่ได้ จำกัด ช่วงของจำนวนเต็ม ฉันไม่ได้ จำกัด การแก้ปัญหาเพื่อเปรียบเทียบทั้งสองประเภท

1
ภาพถ่ายระนาบย่อยที่หนักที่สุด
พิจารณาปัญหาต่อไปนี้ ป.ร. ให้ไว้: กราฟที่สมบูรณ์ที่มีน้ำหนักที่ไม่เป็นลบจริงบนขอบ ภารกิจ: ค้นหากราฟย่อยของน้ำหนักสูงสุด ("สูงสุด" ในบรรดากราฟย่อยระนาบที่เป็นไปได้ทั้งหมด) หมายเหตุ: กราฟย่อยน้ำหนักสูงสุดจะเป็นรูปสามเหลี่ยม ถ้ากราฟทั้งหมดเปิดอยู่nnn จุดยอดก็จะมี m = 3 n - 6ม.=3n-6m=3n-6 ขอบ คำถาม: อัลกอริทึมที่ดีที่สุดสำหรับปัญหานี้คืออะไร ความซับซ้อนของเวลาคืออะไร

4
ทำไมการค้นหาแบบไบนารีจึงเรียกว่าการค้นหาแบบไบนารี
ฉันได้ยินคำอธิบายที่เป็นไปได้หลายประการดังนั้นฉันต้องการอ้างอิงที่เชื่อถือได้ อัพเดท 05.19: ฉันสนใจคำถามนี้เพราะมีนักเรียนของฉันคนหนึ่งเขียนในวิทยานิพนธ์ของเขาว่าชื่อนี้มาจากคำอธิบายด้านล่าง (1) จนถึงตอนนี้ฉันคิด / ได้ยินว่ามันมาจากคำอธิบาย (2) ฉันจะรู้สึกไม่ดีทั้งที่ปล่อยให้สิ่งที่ผิดในวิทยานิพนธ์ของเขาเช่นเดียวกับบอกให้เขาลบมันถ้ามันอาจจะถูกต้อง (1) พิจารณาการค้นหาจำนวนเต็มในช่วงเวลา [0,2n−1][0,2n−1][0,2^{n-1}]. เราสามารถหาได้โดยใช้คำถามโดยขอให้ในขั้นตอนที่ไบนารีหลักของตัวเลขnnniiiithithi^{th} (2) ถ้าเรามีพื้นที่ค้นหาที่มีองค์ประกอบเราสามารถหาองค์ประกอบที่ไม่รู้จักโดยคำถามที่ซ้ำ ๆ แยกส่วนที่เหลือของพื้นที่ในสอง2n2n2^n และใช่ฉันรู้ว่า (2) สามารถให้อัลกอริทึมแบบเดียวกับ (1) แต่นั่นไม่ใช่จุดที่นี่ (2) สามารถนำไปใช้สำหรับปัญหาทั่วไปเพิ่มเติม

2
โซ่มาร์คอฟคืออะไร?
ขณะนี้ฉันกำลังอ่านบทความเกี่ยวกับก้อนลูกโซ่มาร์คอฟและฉันไม่สามารถเห็นความแตกต่างระหว่างลูกโซ่มาร์คอฟและกราฟถ่วงน้ำหนักแบบกำกับ ตัวอย่างเช่นในบทความการหาพื้นที่รัฐที่เหมาะสมที่สุดในเครือมาร์คอฟพวกเขาให้คำจำกัดความต่อไปนี้ของ CTMC (ห่วงโซ่มาร์คอฟเวลาต่อเนื่อง): เราพิจารณา CTMC ที่ จำกัด (S,Q)(S,Q)(\mathcal{S}, Q) กับพื้นที่ของรัฐ S={x1,x2,…,xn}S={x1,x2,…,xn}\mathcal{S} = \{x_1, x_2, \ldots, x_n\} โดยเมทริกซ์อัตราการเปลี่ยนแปลง Q:S×S→R+Q:S×S→R+Q: \mathcal{S} \times \mathcal{S} \to \mathbb{R}^+. พวกเขาไม่ได้พูดถึงคุณสมบัติมาร์คอฟเลยและในความเป็นจริงถ้าน้ำหนักบนขอบแสดงถึงความน่าจะเป็นฉันเชื่อว่าคุณสมบัติมาร์คอฟถือเป็นเรื่องเล็กน้อยเนื่องจากความน่าจะเป็นขึ้นอยู่กับสถานะปัจจุบันของโซ่เท่านั้นและไม่ใช่เส้นทางที่นำไปสู่ เพื่อมัน ในบทความอื่น ๆเกี่ยวกับคุณสมบัติเชิงสัมพันธ์ของโซ่ของความสามารถมาร์คอฟLumpabilityถูกกำหนดในทำนองเดียวกัน: ห่วงโซ่มาร์คอฟ MMM จะแสดงเป็น triplet (S,P,π)(S,P,π)(S, P, \pi) ที่ไหน SSS เป็นชุด จำกัด ของรัฐของ MMM, PPP เมทริกซ์ความน่าจะเป็นช่วงการเปลี่ยนภาพแสดงความน่าจะเป็นที่จะได้รับจากสถานะหนึ่งไปอีกสถานะหนึ่งและ ππ\pi คือการแจกแจงความน่าจะเป็นเบื้องต้นที่แสดงถึงโอกาสที่ระบบจะเริ่มในสถานะที่แน่นอน อีกครั้งไม่พูดถึงอดีตหรืออนาคตหรือความเป็นอิสระ มีกระดาษแผ่นที่สามSimple O (m logn) …

2
มีคำจำกัดความที่ชัดเจนของ“ คำนวณได้” สำหรับแบบจำลองการคำนวณที่ไม่ได้ทำให้เสร็จสมบูรณ์หรือไม่?
นี่คือการติดตามคำถามอื่นที่นี่และฉันหวังว่ามันจะไม่เป็นปรัชญามากเกินไป ดังที่ราฟาเอลชี้ให้เห็นในความคิดเห็นของคำถามก่อนหน้านี้ฉันไม่ได้คำจำกัดความของ "คำนวณ" แต่จากเอกสารที่ฉันอ่านความหมายยังไม่ชัดเจนเมื่อพูดถึงแบบจำลองของการคำนวณที่อ่อนแอกว่าทัวริง เครื่องเนื่องจากการเข้ารหัสของอินพุตและเอาต์พุต นิยามทั่วไปของทัวริงที่คำนวณได้มีดังนี้: คำจำกัดความ 1: ฟังก์ชั่น f:Nk→Nf:Nk→Nf : \mathbb{N}^k \to \mathbb{N}เรียกว่าทัวริงคำนวณ iff มีเครื่องทัวริงMMM ซึ่งคำนวณ fffใช้การเข้ารหัสที่เหมาะสมของตัวเลขธรรมชาติเป็นสตริง คำจำกัดความแตกต่างกันในสิ่งที่ว่าเป็นเข้ารหัสที่เหมาะสมเป็น แต่ส่วนใหญ่หมายถึงการเข้ารหัสไบนารี , การเข้ารหัสเอกหรือการเข้ารหัสทศนิยมเป็นหนึ่งในการแก้ไขและการเข้ารหัสที่เหมาะสม นอกจากนี้ยังเป็นไปได้ที่จะแสดงว่าจำเป็นต้องมีการแก้ไขการเข้ารหัสหนึ่งรายการสำหรับคำจำกัดความของการคำนวณทัวริง แต่สิ่งที่ทำให้พูดว่าการเข้ารหัสเลขฐานสองของจำนวนธรรมชาติพิเศษเพื่อให้เราสามารถแปลงเป็นตัวเลขที่เหมาะสมได้? อาจจะเป็นเพราะมันเหมาะกับความคิดที่ใช้งานง่ายของสิ่งที่คำนวณหมายความว่าบังเอิญ ตอนนี้ถ้าเราดูรูปแบบการคำนวณที่อ่อนแอกว่าเครื่องทัวริงล่ะ ตัวอย่างเช่นลองพิจารณาชุดMcMcM_c ของเครื่องจักรทัวริง "พิการ" ด้วยตัวอักษร {0,1}{0,1}\{0,1\}ซึ่งอาจย้ายไปทางขวาเท่านั้นและคำจำกัดความของการคำนวณทัวริงพิการซึ่งสอดคล้องกับที่คำนวณทัวริง: คำจำกัดความ 2: ฟังก์ชั่น f:Nk→Nf:Nk→Nf : \mathbb{N}^k \to \mathbb{N}เรียกว่าทัวริงทัวริงคำนวณหรือคำนวณในMcMcM_c ถ้ามีเครื่องทัวริงพิการ MMM ซึ่งคำนวณ fff ใช้การเข้ารหัสที่เหมาะสมของตัวเลขธรรมชาติเป็นสตริง หากเรากำหนด "การเข้ารหัสที่เหมาะสม" เป็น "การเข้ารหัสแบบไบนารี" หมายถึงฟังก์ชันนั้น f:N→N,n↦n+1f:N→N,n↦n+1f …

1
อะไรคือตัวอย่างที่ไม่ได้วางแผนไว้สำหรับการตรวจสอบประเภทคงที่ที่อนุรักษ์เกินไป?
ในแนวคิดในการเขียนโปรแกรมภาษาจอห์นมิทเชลเขียนว่าการตรวจสอบชนิดสแตติกจำเป็นต้องระมัดระวัง (เข้มงวดมากเกินไป) เนื่องจากปัญหาการหยุดทำงาน เขาให้เป็นตัวอย่าง: if (complicated-expression-that-could-run-forever) then (expression-with-type-error) else (expression-with-type-error) ใครสามารถให้คำตอบที่ไม่ได้วางแผนไว้ซึ่งจะเป็นข้อกังวลในทางปฏิบัติได้จริงหรือไม่? ฉันเข้าใจว่า Java อนุญาตการปลดเปลื้องที่ตรวจสอบแบบไดนามิกสำหรับกรณีเช่นนี้: if (foo instanceof Person) { Person p = (Person) foo; : } แต่ฉันพิจารณาถึงความจำเป็นของการขาดภาษา / คอมไพเลอร์ Java มากกว่าปัญหาข้ามภาษา

1
regexp เมื่อใดที่ไม่ใช่นิพจน์ปกติ
ตั้งแต่ผมกำลังเรียนวิชาภาษาอย่างเป็นทางการที่วิทยาลัยของฉันฉัน stumbled เมื่อโพสต์ที่น่าสนใจเหล่านี้ ( หนึ่ง สอง ) ซึ่งอธิบายถึงวิธีการที่จะหาจำนวนที่สำคัญใช้regexp ขณะที่ผมกล่าวว่าregexpไม่แสดงออกปกติ เนื่องจากนิพจน์ทั่วไปสามารถจับคู่สตริงที่คำนวณโดย Automite State Automata และการค้นหาหมายเลขเฉพาะไม่สามารถทำได้โดย FSA, regexp ที่แสดงในบล็อกโพสต์ไม่ได้เป็นนิพจน์ปกติทั้งหมดเนื่องจากมันจะย้อนรอยเพื่อจับคู่สตริง เนื่องจากฉันไม่เคยใช้นิพจน์ทั่วไปจริงๆตอนนี้คำถามของฉัน: ฉันจะจำ regexp จากนิพจน์ปกติ "ของจริง" ได้ทันทีโดยดูจากอะไร? คำจำกัดความ: โดยการแสดงออกปกติฉันหมายถึงความคิดตามที่กำหนดไว้ในภาษาที่เป็นทางการ โดย regexp ฉันหมายถึงความคิดที่สนับสนุนโดยภาษาโปรแกรมสมัยใหม่ ไวยากรณ์ regexp มักจะมีคุณสมบัติเพิ่มเติมเช่น backreferences Regexps ตามที่เห็นในภาษาการเขียนโปรแกรมมีประสิทธิภาพมากกว่าการแสดงออกปกติของสไตล์ทางการ

4
ค้นหาเลขจำนวนเต็มสองตัวที่ใหญ่ที่สุดในห้าตัวโดยเร็วที่สุด
ฉันใช้รูปแบบของตัวกรองมัธยฐาน 5 ข้ามบนข้อมูลภาพบนระบบฝังตัวขนาดเล็กเช่น x x x x x อัลกอริทึมนั้นง่ายมาก: อ่านค่าจำนวนเต็ม 5 ค่าที่ได้รับ 2 ได้ทำการคำนวณสูงสุดแล้วเขียนผลจำนวนเต็มที่ไม่ได้ลงนาม สิ่งที่ดีคือค่าอินพุตจำนวนเต็ม 5 ค่าทั้งหมดอยู่ในช่วง 0-20 ค่าจำนวนเต็มจากการคำนวณยังอยู่ในช่วง 0-20! จากการทำโปรไฟล์ฉันพบว่าการได้ตัวเลขสองตัวที่ใหญ่ที่สุดคือคอขวดดังนั้นฉันจึงอยากให้ส่วนนี้เร็วขึ้น วิธีที่เร็วที่สุดในการทำการเลือกนี้คืออะไร? อัลกอริทึมปัจจุบันใช้มาสก์ 32 บิตที่มี 1 ในตำแหน่งที่กำหนดโดยตัวเลข 5 ตัวและฟังก์ชั่น CLZ ที่รองรับ HW ฉันควรจะบอกว่าซีพียูเป็นกรรมสิทธิ์ไม่สามารถใช้งานได้นอก บริษัท ของฉัน คอมไพเลอร์ของฉันคือ GCC แต่ปรับแต่งสำหรับ CPU นี้ ฉันลองคิดดูว่าฉันสามารถใช้ตารางการค้นหาได้หรือไม่ แต่ฉันไม่สามารถสร้างรหัสที่ฉันสามารถใช้ได้ ฉันมีรวมกันสำหรับการป้อนข้อมูลการสั่งซื้อ แต่ไม่ได้เป็นสิ่งที่สำคัญคือเป็นเช่นเดียวกับ21521521^5[5,0,0,0,5][5,5,0,0,0] มันเกิดขึ้นว่าฟังก์ชั่นแฮชด้านล่างสร้างแฮชที่สมบูรณ์แบบโดยไม่มีการชน! def hash(x): h = 0 …

2
อธิบาย SAT ถึงครูวิทยาศาสตร์ระดับมัธยมปลาย
ฉันเป็นนักเรียนมัธยมปลายที่สนใจด้านวิทยาศาสตร์คอมพิวเตอร์ ฉันพัฒนาอัลกอริทึมที่ยอดเยี่ยมสำหรับ #SAT และฉันกำลังใช้งานและทำโครงงานวิทยาศาสตร์ที่เป็นธรรม ที่ปรึกษาของฉันซึ่งเป็นครูสอนวิทยาศาสตร์ที่ดีที่สุดในโรงเรียนของฉันและยังเป็นอาจารย์ AP Comp Sci บอกฉันว่าเธอไม่รู้ว่าโครงการของฉันเป็นอย่างไรและฉันต้องอธิบายเหตุผลสั้น ๆ ว่าทำไม #SAT ถึงเป็น สำคัญในภายใต้ 5 นาที ฉันบอกเธอว่า SAT ลดเหลือ #SAT และพยายามอธิบายว่าทำไม SAT ถึงสำคัญ: ฉันให้ตัวอย่างปัญหา NP แก่เธออธิบายว่าปัญหาใน NP ลดเป็น SAT และอธิบายว่าด้วยการค้นหาแบบไบนารีคุณสามารถลดปัญหาการหาค่าเหมาะที่สุดให้กับ SAT ได้ ซึ่งช่วยให้คุณพับโปรตีนและสร้างแบบจำลอง AI ที่ทรงพลัง น่าเสียดายที่เธอไม่เข้าใจฉันเลย คุณช่วยชี้ให้ฉันหน่อยได้ไหม? ป.ล. ที่ปรึกษาของฉันถามฉันว่าปัญหาที่มีประโยชน์ลดลงเป็น #SAT ที่ไม่ลดลงถึง SAT (สมมติว่าปัญหาบางอย่างใน #P นั้นยากกว่ารุ่น NP ที่สอดคล้องกัน) ทั้งหมดที่ฉันสามารถหาได้คือการหาจำนวนโมเดลสำหรับชุดข้อมูลที่กำหนดนั้นดีกว่าโมเดลที่ระบุ (สมมติว่าพารามิเตอร์แต่ละตัวของโมเดลนั้นเล็กกว่าจำนวนบิตที่กำหนด) ฉันค้นหาคนอื่นบนเว็บ …

4
องค์ประกอบที่ไม่ซ้ำกันสามารถแก้ไขได้ในเวลาเชิงเส้นที่กำหนด?
พิจารณาปัญหาต่อไปนี้: อินพุต : แสดงของจำนวนเต็มX, วายX,YX,Y เป้าหมาย : พิจารณาว่ามีจำนวนเต็มที่อยู่ในทั้งสองรายการหรือไม่xxx สมมติว่าทั้งสองรายการมีขนาดnมีอัลกอริทึมเชิงเส้นเวลาที่กำหนดสำหรับปัญหานี้หรือไม่? คุณสามารถแก้ปัญหานี้ในเวลาแน่นอนโดยไม่ใช้การสุ่มX, วายX,YX,YnnnO ( n )O(n)O(n) น่าเสียดายที่คุณไม่สามารถสรุปได้ว่าองค์ประกอบลิสต์นั้นเล็กทั้งหมด ฉันสามารถดูวิธีการแก้ปัญหาในเวลาที่คาดหวังโดยใช้อัลกอริธึมแบบสุ่ม: สุ่มเลือกฟังก์ชันแฮชแบบ 2 สากลเก็บองค์ประกอบของลงใน hashtable (โดยใช้เป็นฟังก์ชันแฮช) แล้วค้นหา แต่ละองค์ประกอบของเพื่อดูว่ามันอยู่ใน hashtable หรือไม่ เวลาทำงานคาดว่าจะเป็น(n) อย่างไรก็ตามฉันไม่เห็นวิธีการค้นหาอัลกอริทึมที่กำหนดค่าโดยใช้เวลาหากคุณพยายามลดขนาดลงและแก้ไขฟังก์ชันแฮชที่ระบุเพียงอย่างเดียวจะมีอินพุตที่แย่ที่สุดซึ่งทำให้โพรซีเดอร์นี้รันในO ( n )O(n)O(n)ชั่วโมงhhXXXชั่วโมงhhYYYO ( n )O(n)O(n)O ( n )O(n)O(n)Θ (n2)Θ(n2)\Theta(n^2)เวลา. อัลกอริทึมที่ดีที่สุดที่ฉันสามารถหาได้เกี่ยวข้องกับการเรียงลำดับค่า แต่นั่นไม่ใช่เวลาเชิงเส้น เราสามารถใช้เวลาเชิงเส้นตรงได้หรือไม่? นอกจากนี้ฉันสามารถดูวิธีการแก้ปัญหาในเวลาเชิงเส้นถ้าคุณคิดว่าองค์ประกอบรายการทั้งหมดเป็นจำนวนเต็มในช่วง (โดยทั่วไปแล้วจะเรียงลำดับการนับ) - แต่ฉันสนใจในสิ่งที่เกิดขึ้นโดยทั่วไป กรณีเมื่อเราไม่สามารถคิดได้[ 1 , n ][1,n][1,n] หากคำตอบนั้นขึ้นอยู่กับรูปแบบการคำนวณแบบจำลอง …

2
คอมพิวเตอร์อะนาล็อกและวิทยานิพนธ์ทัวริสต์ของโบสถ์
ฉันต้องการเสนอราคาจาก Nielsen & Chuang การคำนวณควอนตัมและข้อมูลควอนตัมฉบับครบรอบ 10 ปีหน้า 5 (เหมืองของฉัน): ระดับหนึ่งของความท้าทายสู่คริสตจักรที่แข็งแกร่ง - วิทยานิพนธ์ทัวริงมาจากการคำนวณแบบอะนาล็อก ในปีที่ผ่านมาตั้งแต่ทัวริงทีมนักวิจัยหลายคนสังเกตเห็นว่าคอมพิวเตอร์อนาล็อกบางประเภทสามารถแก้ปัญหาได้อย่างมีประสิทธิภาพซึ่งเชื่อว่าไม่มีวิธีแก้ปัญหาที่มีประสิทธิภาพในเครื่องทัวริง เมื่อเห็นแวบแรกคอมพิวเตอร์อะนาล็อกเหล่านี้ดูเหมือนจะละเมิดรูปแบบที่แข็งแกร่งของวิทยานิพนธ์ของโบสถ์ น่าเสียดายที่การคำนวณแบบอะนาล็อกปรากฎว่าเมื่อสมมติฐานที่เป็นจริงเกี่ยวกับการมีสัญญาณรบกวนในคอมพิวเตอร์อะนาล็อกเกิดขึ้นพลังของมันจะหายไปในทุกกรณีที่ทราบ พวกเขาไม่สามารถแก้ไขปัญหาที่ไม่สามารถแก้ไขได้อย่างมีประสิทธิภาพบนเครื่องทัวริงบทเรียนนี้ - ว่าผลกระทบของเสียงที่เหมือนจริงจะต้องนำมาพิจารณาในการประเมินประสิทธิภาพของแบบจำลองการคำนวณ - เป็นหนึ่งในความท้าทายที่ยิ่งใหญ่ของการคำนวณควอนตัมและข้อมูลควอนตัมซึ่งเป็นความท้าทายที่ประสบความสำเร็จจากการพัฒนาทฤษฎีข้อผิดพลาดเชิงควอนตัม รหัสแก้ไขและการคำนวณควอนตัมที่ผิดพลาด ดังนั้นในการคำนวณเชิงควอนตัมสามารถทนต่อเสียงรบกวนได้ในระดับที่แตกต่างจากการคำนวณแบบอะนาล็อกซึ่งแตกต่างจากการคำนวณแบบอะนาล็อก นี่เป็นคำสั่งว่าเสียงรบกวนเร็วกว่าพลังของขนาดของปัญหาหรือบางคนชี้ให้ฉันไปในทิศทางที่ถูกต้องเพื่อที่ฉันจะได้ทราบว่าขอบเขตการปรับขนาดเหล่านี้เป็นพื้นฐานหรือเป็นเพียงปัญหาทางวิศวกรรมหรือไม่ เพื่อความชัดเจนฉันกำลังถามว่าคอมพิวเตอร์อะนาล็อกไม่สามารถเอาชนะเครื่องทัวริงได้อย่างมีประสิทธิภาพเนื่องจากเสียงรบกวน

3
ทำไมซีพียูถึงเกี่ยวข้องระหว่าง Keyboard Echo
ขณะนี้ฉันกำลังเรียนเพื่อสอบวิทยาศาสตร์คอมพิวเตอร์และฉันเจอแนวคิดที่ทำให้ฉันค่อนข้างนิ่งงัน เมื่อพิมพ์คีย์บนแป้นพิมพ์อักขระ ASCII จะถูกส่งไปยัง CPU เมื่อรับตัวอักษรนี้ CPU จะแสดงอักขระตัวเดียวกันบนหน้าจอ กระบวนการนี้เรียกว่าการสะท้อน แทนที่จะให้ซีพียูมีส่วนเกี่ยวข้องทำไมเราไม่เพียงทำกระบวนการสะท้อนนี้ภายในหน่วยแป้นพิมพ์ / หน้าจอเพื่อให้ CPU มีอิสระในการทำงานที่มีประโยชน์อื่น ๆ ตอนนี้อย่างสังหรณ์ใจฉันรู้สึกแบบนี้เพราะไม่มีหน่วยแป้นพิมพ์ / หน้าจอที่กำหนดและ CPU เป็นอุปกรณ์ที่รับผิดชอบในการสื่อสารระหว่างหน้าจอและแป้นพิมพ์ผ่านเครือข่ายเชื่อมต่อโครงข่าย อย่างไรก็ตามฉันรู้สึกเหมือนความจริงที่ว่าหน่วยแป้นพิมพ์ / หน้าจอกล่าวถึงอาจหมายความว่าฉันขาดแนวคิดที่สำคัญ เป็นกรณีนี้หรือไม่? ทำไมเราถึงเกี่ยวข้องกับ CPU ในกระบวนการ echo

2
อัลกอริทึมรากที่สองจำนวนเต็มความแม่นยำตามอำเภอใจ?
มีอัลกอริทึมย่อยที่รู้จักกันดีสำหรับการคำนวณพื้นของสแควร์รูทของnจำนวนเต็มบิตหรือไม่? อัลกอริธึมไร้เดียงสานั้นจะเป็นอย่างไร def sqrt(x): r = 0 i = x.bit_length() // 2 while i >= 0: inc = (r << (i+1)) + (1 << (i*2)) if inc <= x: x -= inc r += 1 << i i -= 1 return r สิ่งนี้ต้องใช้O(n)การวนซ้ำแต่ละอันเกี่ยวข้องกับการเพิ่มที่เป็นO(n)เวลาดังนั้นจึงเป็นO(n^2)เวลาโดยรวม มีอะไรเร็วขึ้นไหม ฉันรู้ว่าในกรณีของการคูณมีอัลกอริทึมพิเศษที่ทำได้ดีกว่าเวลากำลังสอง แต่ฉันไม่สามารถหาอะไรสำหรับรากที่สอง

2
การใช้ oracle ทัวริงเครื่องไม่นำไปสู่ความขัดแย้งได้อย่างไร?
เราจะมั่นใจได้อย่างไรว่าเรายังคงสร้างคำแถลงที่ถูกต้องและแม่นยำเกี่ยวกับคลาสความซับซ้อนเมื่อใช้ oracle Turing Machines ตามความเข้าใจของฉัน (ตามคำจำกัดความที่ให้ไว้ในตำราเรียนเบื้องต้นในเรื่อง) oracle เครื่องจักรทัวริงสามารถกำหนดสถานะการเป็นสมาชิกของสตริงที่เกี่ยวกับภาษา oracle ในขั้นตอนการคำนวณเดียว อย่างไรก็ตามภาษา oracle ที่ใช้บ่อยนั้นเป็นไปไม่ได้ที่จะแก้ไขในเวลาที่แน่นอน (ยกตัวอย่างเช่น oracle ที่สมบูรณ์แบบ EXPTIME) สำหรับฉันดูเหมือนว่า "การเปิดประตู" เพื่อความขัดแย้งและหลังจากทั้งหมดมีอะไรตามมาจากความขัดแย้ง

3
ความไม่เปลี่ยนแปลงในการเขียนโปรแกรมเชิงฟังก์ชั่นมีอยู่จริงหรือไม่?
แม้ว่าฉันจะทำงานเป็นโปรแกรมเมอร์ในชีวิตประจำวันของฉันและใช้ภาษายอดนิยมทั้งหมด (Python, Java, C, ฯลฯ ) ฉันยังไม่มีมุมมองที่ชัดเจนเกี่ยวกับการเขียนโปรแกรมที่ใช้งานได้ จากสิ่งที่ผมได้อ่านหนึ่งทรัพย์สินของภาษาหน้าที่คือว่าโครงสร้างข้อมูลจะไม่เปลี่ยนรูป สำหรับฉันคนเดียวนี่ทำให้เกิดคำถามมากมาย แต่ก่อนอื่นฉันจะเขียนสิ่งที่ฉันเข้าใจเกี่ยวกับความไม่สามารถเปลี่ยนแปลงได้และถ้าฉันผิดฉันรู้สึกอิสระที่จะแก้ไขให้ถูกต้อง ความเข้าใจของฉันเกี่ยวกับความไม่สามารถเปลี่ยนแปลงได้: เมื่อโปรแกรมเริ่มทำงานจะมีโครงสร้างข้อมูลคงที่พร้อมข้อมูลคงที่ ไม่มีใครสามารถเพิ่มข้อมูลใหม่ให้กับโครงสร้างเหล่านี้ ไม่มีตัวแปรในรหัส คุณสามารถ "คัดลอก" จากข้อมูลที่มีอยู่แล้วหรือข้อมูลที่คำนวณได้ในปัจจุบัน เนื่องจากทั้งหมดข้างต้นการเปลี่ยนแปลงไม่ได้เพิ่มความซับซ้อนของพื้นที่ขนาดใหญ่ให้กับโปรแกรม คำถามของฉัน: หากโครงสร้างข้อมูลควรจะยังคงเหมือนเดิม (ไม่เปลี่ยนรูป) จะมีคนเพิ่มรายการใหม่ในรายการได้อย่างไร อะไรคือจุดที่มีโปรแกรมที่ไม่สามารถรับข้อมูลใหม่ได้? สมมติว่าคุณมีเซ็นเซอร์ติดอยู่กับคอมพิวเตอร์ของคุณที่ต้องการป้อนข้อมูลเข้าสู่โปรแกรม นั่นหมายความว่าเราไม่สามารถจัดเก็บข้อมูลขาเข้าได้ทุกที่หรือไม่ การเขียนโปรแกรมใช้งานได้ดีสำหรับการเรียนรู้ของเครื่องอย่างไร เนื่องจากการเรียนรู้ของเครื่องสร้างขึ้นจากสมมติฐานของการปรับปรุง "การรับรู้" ของสิ่งต่าง ๆ - จึงเก็บข้อมูลใหม่

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