คำถามติดแท็ก language-agnostic

ใช้แท็กนี้สำหรับคำถามโปรแกรมที่เป็นอิสระจากภาษาการเขียนโปรแกรมเฉพาะใด ๆ

7
Enums และค่าคงที่ จะใช้เมื่อใด
ฉันกำลังอ่าน enums และพบว่ามันคล้ายกับการประกาศค่าคงที่ ฉันจะรู้ได้อย่างไรว่าเมื่อใดควรใช้ค่าคงที่แทนที่จะใช้ enum หรือในทางกลับกัน ข้อดีของการใช้ enums คืออะไร?

16
อัลกอริทึมสำหรับสร้างตารางเวลาของโรงเรียน
ฉันสงสัยว่ามีวิธีแก้ปัญหาสำหรับอัลกอริทึมในการสร้างตารางเรียนของโรงเรียนหรือไม่ โดยพื้นฐานแล้วมันเกี่ยวกับการเพิ่มประสิทธิภาพ "การกระจายชั่วโมง" (ทั้งในกรณีของครูและกรณีของชั้นเรียน) สำหรับความสัมพันธ์ของครูประจำชั้น เราสามารถสันนิษฐานได้ว่าเรามีชุดชั้นเรียนหัวข้อบทเรียนและครูที่เกี่ยวข้องกันที่อินพุตและตารางเวลานั้นควรพอดีระหว่าง 8.00 น. ถึง 16.00 น. ฉันเดาว่าอาจไม่มีอัลกอริทึมที่แม่นยำสำหรับสิ่งนั้น แต่อาจมีคนรู้วิธีการประมาณหรือคำแนะนำที่ดีในการพัฒนา

30
โปรแกรมเมอร์ปริศนา: การเข้ารหัสสถานะกระดานหมากรุกตลอดทั้งเกม
ไม่ใช่คำถามอย่างเคร่งครัดปริศนามากกว่า ... ในช่วงหลายปีที่ผ่านมาฉันมีส่วนร่วมในการสัมภาษณ์ทางเทคนิคของพนักงานใหม่สองสามครั้ง นอกเหนือจากการถามคำถามมาตรฐาน "คุณรู้จักเทคโนโลยี X" แล้วฉันยังพยายามทำความเข้าใจว่าพวกเขารับมือกับปัญหาอย่างไร โดยปกติฉันจะส่งคำถามให้พวกเขาทางอีเมลหนึ่งวันก่อนการสัมภาษณ์และคาดว่าพวกเขาจะได้รับคำตอบภายในวันรุ่งขึ้น บ่อยครั้งที่ผลลัพธ์ค่อนข้างน่าสนใจ - ผิด แต่น่าสนใจ - และบุคคลนั้นจะยังคงได้รับคำแนะนำของฉันหากพวกเขาสามารถอธิบายได้ว่าทำไมพวกเขาจึงใช้แนวทางเฉพาะ ดังนั้นฉันคิดว่าฉันจะโยนหนึ่งในคำถามของฉันให้กับผู้ชม Stack Overflow คำถาม: อะไรคือวิธีที่ประหยัดพื้นที่ที่สุดที่คุณคิดได้ในการเข้ารหัสสถานะของเกมหมากรุก (หรือเซตย่อย) นั่นคือให้กระดานหมากรุกที่มีการจัดเรียงชิ้นส่วนอย่างถูกกฎหมายเข้ารหัสทั้งสถานะเริ่มต้นนี้และการเคลื่อนไหวทางกฎหมายที่ตามมาทั้งหมดที่ผู้เล่นในเกมดำเนินการ ไม่ต้องใช้รหัสสำหรับคำตอบเพียงแค่คำอธิบายของอัลกอริทึมที่คุณจะใช้ แก้ไข: ตามที่ผู้โพสต์คนหนึ่งชี้ให้เห็นฉันไม่ได้พิจารณาช่วงเวลาระหว่างการเคลื่อนไหว อย่าลังเลที่จะพิจารณาสิ่งนั้นเป็นตัวเลือกเพิ่มเติม :) EDIT2: เพื่อความชัดเจนเพิ่มเติม ... โปรดจำไว้ว่าตัวเข้ารหัส / ตัวถอดรหัสเป็นกฎที่รับรู้ สิ่งเดียวที่ต้องจัดเก็บจริงๆคือตัวเลือกของผู้เล่น - สิ่งอื่นใดที่สามารถสันนิษฐานได้โดยตัวเข้ารหัส / ตัวถอดรหัส แก้ไข 3: การเลือกผู้ชนะที่นี่จะเป็นเรื่องยาก :) คำตอบที่ดีมากมาย!

17
ฉันจะวัดความเหมือนระหว่างสองภาพได้อย่างไร? [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน2 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันต้องการเปรียบเทียบภาพหน้าจอของแอปพลิเคชันหนึ่ง (อาจเป็นหน้าเว็บ) กับภาพหน้าจอที่ถ่ายไว้ก่อนหน้านี้เพื่อตรวจสอบว่าแอปพลิเคชันแสดงตัวเองอย่างถูกต้องหรือไม่ ฉันไม่ต้องการการเปรียบเทียบการจับคู่แบบตรงทั้งหมดเนื่องจากลักษณะอาจแตกต่างกันเล็กน้อย (ในกรณีของเว็บแอปขึ้นอยู่กับเบราว์เซอร์องค์ประกอบบางอย่างอาจอยู่ในตำแหน่งที่แตกต่างกันเล็กน้อย) ควรวัดว่าภาพหน้าจอมีความคล้ายคลึงกันเพียงใด มีไลบรารี / เครื่องมือที่ทำเช่นนั้นอยู่แล้วหรือไม่? คุณจะใช้มันอย่างไร?

26
Code Golf - πวัน
ล็อค คำถามนี้และคำตอบถูกล็อกเนื่องจากคำถามไม่ตรงประเด็น แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ยังไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ความท้าทาย แนวทางสำหรับโค้ดกอล์ฟบน SO รหัสที่สั้นที่สุดตามจำนวนอักขระเพื่อแสดงการแสดงวงกลมรัศมีRโดยใช้*อักขระตามด้วยการประมาณπ อินพุตเป็นตัวเลขเดียว, R. เนื่องจากคอมพิวเตอร์ส่วนใหญ่ดูเหมือนจะมีอัตราส่วนเกือบ 2: 1 คุณจึงควรแสดงเฉพาะบรรทัดที่yเป็นเลขคี่ ซึ่งหมายความว่าเมื่อไหร่ที่Rคุณควรพิมพ์R-1บรรทัดแปลก มีพยานหลักฐานใหม่สำหรับR=13การชี้แจง เช่น. Input 5 Output Correct Incorrect 3 ******* 4 ******* 1 ********* 2 ********* -1 ********* 0 *********** -3 ******* -2 ********* 2.56 -4 ******* 3.44 แก้ไข:เนื่องจากความสับสนอย่างกว้างขวางที่เกิดจากค่าคี่ของRโซลูชันใด ๆ ที่ผ่านกรณีทดสอบ 4 กรณีที่ระบุด้านล่างจะได้รับการยอมรับ ประมาณของπจะได้รับโดยการหารสองเท่าของจำนวนของตัวละครโดย* ค่าประมาณควรถูกต้องอย่างน้อย 6 …

30
ฉันผิดศีลธรรมหรือไม่ที่ใช้ชื่อตัวแปรที่แตกต่างจากประเภทของชื่อนั้น ๆ
ตัวอย่างเช่นใช้รหัสนี้: var person = new Person(); หรือสำหรับคุณ Pythonistas: person = Person() ฉันบอกตลอดเวลาว่าสิ่งนี้เลวร้ายแค่ไหน แต่ยังไม่เห็นตัวอย่างของการผิดศีลธรรมของรหัสสองบรรทัดนี้ สำหรับฉันแล้วคน ๆ หนึ่งก็คือบุคคลและการพยายามตั้งชื่ออื่นเป็นการเสียเวลา ฉันคิดว่าในช่วงหลายวันก่อนที่จะเน้นไวยากรณ์สิ่งนี้จะเป็นเรื่องใหญ่ แต่ทุกวันนี้มันค่อนข้างง่ายที่จะบอกชื่อประเภทนอกเหนือจากชื่อตัวแปร Heck มันง่ายมากที่จะเห็นความแตกต่างที่นี่ใน SO หรือมีบางอย่างที่ฉันขาดหายไป? ในกรณีนี้จะเป็นประโยชน์หากคุณสามารถให้ตัวอย่างโค้ดที่ทำให้เกิดปัญหาได้

4
เหตุใด JVM จึงยังไม่รองรับการเพิ่มประสิทธิภาพการโทรหาง?
สองปีหลังจากการเพิ่มประสิทธิภาพdo -the-jvm-Prevent-tail-call-optimizationsดูเหมือนว่าจะมีการนำไปใช้งานต้นแบบ และMLVMได้ระบุคุณลักษณะนี้เป็น "โปรโต 80%" ในบางครั้ง ไม่มีความสนใจอย่างแข็งขันจากฝั่งของ Sun / Oracle ในการสนับสนุนการโทรหางหรือเป็นเพียงการเรียกหางคือ "[... ] โชคชะตาที่จะมาเป็นอันดับสองในทุกรายการลำดับความสำคัญของคุณลักษณะ [... ]" ตามที่กล่าวไว้ที่JVM การประชุมสุดยอดภาษา ? ฉันจะสนใจจริงๆถ้ามีคนทดสอบบิลด์ MLVM และสามารถแบ่งปันความประทับใจว่ามันทำงานได้ดีเพียงใด (ถ้าเป็นเช่นนั้น) อัปเดต: โปรดทราบว่า VM บางตัวเช่นAvianรองรับการโทรหางที่เหมาะสมโดยไม่มีปัญหาใด ๆ

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

14
ควรเป็น "จัด - ยืนยัน - กระทำ - ยืนยัน" หรือไม่
เกี่ยวกับรูปแบบการทดสอบแบบคลาสสิกของArrange-Act-Assertฉันมักพบว่าตัวเองมีการเพิ่มการยืนยันตัวตนที่มาก่อนพระราชบัญญัติ วิธีนี้ทำให้ฉันรู้ว่าการยืนยันที่ผ่านนั้นผ่านไปแล้วอันเป็นผลมาจากการกระทำ ฉันคิดว่ามันคล้ายคลึงกับสีแดงในตัวปรับปฏิกิริยาสีแดง - เขียวซึ่งถ้าฉันเห็นแถบสีแดงในระหว่างการทดสอบเท่านั้นฉันจะรู้ว่าแถบสีเขียวหมายถึงฉันได้เขียนโค้ดที่สร้างความแตกต่าง ถ้าฉันเขียนแบบทดสอบที่ผ่านรหัสใด ๆก็จะตอบสนองได้ ในทำนองเดียวกันในส่วนของการจัดเตรียม - การยืนยัน - การกระทำ - การยืนยันหากการยืนยันครั้งแรกของฉันล้มเหลวฉันรู้ว่าพระราชบัญญัติใด ๆ จะผ่านการยืนยันขั้นสุดท้าย - ดังนั้นจึงไม่ได้ตรวจสอบอะไรเกี่ยวกับพระราชบัญญัติ การทดสอบของคุณเป็นไปตามรูปแบบนี้หรือไม่ ทำไมหรือทำไมไม่? การชี้แจงการอัปเดต : การยืนยันครั้งแรกนั้นตรงกันข้ามกับการยืนยันขั้นสุดท้าย ไม่ใช่การยืนยันว่าการจัดเรียงใช้ได้ผล เป็นการยืนยันว่าพระราชบัญญัติยังไม่ได้ผล

11
เหตุใดผู้แข่งขันการเขียนโปรแกรมจึงใช้ C ++ และ Java [ปิด]
ปิด . คำถามนี้เป็นคำถามความคิดเห็นตาม ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบได้ด้วยข้อเท็จจริงและการอ้างอิงโดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ปรับปรุงคำถามนี้ หลังจากแข่งขันและติดตามการแข่งขันGoogle Code Jamในปีนี้ ฉันอดไม่ได้ที่จะสังเกตเห็นจำนวนผู้เข้าแข่งขัน [ที่ประสบความสำเร็จ] ที่ใช้ C / C ++ และ Java อย่างไม่น่าเชื่อ การกระจายตัวของภาษาที่ใช้ตลอดการแข่งขันสามารถมองเห็นได้ที่นี่ หลังจากเขียนโปรแกรมใน C / C ++ มาหลายปีฉันเพิ่งตกหลุมรัก Python เนื่องจากลักษณะที่อ่านง่าย / ตรงไปตรงมา เมื่อเร็ว ๆ นี้ฉันได้เรียนรู้ภาษาที่ใช้งานได้เช่น OCaml, Scheme และแม้แต่ภาษาตรรกะเช่น Prolog ภาษาเหล่านี้มีข้อดีอย่างแน่นอนและในความคิดของฉันสามารถใช้งานได้ง่ายกว่า C ++ และ Java ในบางสถานการณ์ ตัวอย่างเช่นการใช้การโทร / cc ของ …

9
เมื่อใดถ้าเคยการคลายการวนซ้ำยังคงมีประโยชน์อยู่หรือไม่?
ฉันพยายามเพิ่มประสิทธิภาพโค้ดที่มีความสำคัญอย่างยิ่ง (อัลกอริธึมการเรียงลำดับอย่างรวดเร็วที่ถูกเรียกเป็นล้าน ๆ ล้านครั้งในการจำลองมอนติคาร์โล) โดยการคลายการวนซ้ำ นี่คือวงในที่ฉันพยายามเร่งความเร็ว: // Search for elements to swap. while(myArray[++index1] < pivot) {} while(pivot < myArray[--index2]) {} ฉันพยายามยกเลิกการเล่นบางอย่างเช่น: while(true) { if(myArray[++index1] < pivot) break; if(myArray[++index1] < pivot) break; // More unrolling } while(true) { if(pivot < myArray[--index2]) break; if(pivot < myArray[--index2]) break; // More unrolling } สิ่งนี้ไม่แตกต่างอย่างแน่นอนดังนั้นฉันจึงเปลี่ยนกลับเป็นรูปแบบที่อ่านได้มากขึ้น …

6
อัลกอริทึมเพื่อเว้นวรรคสี่เหลี่ยมที่ทับซ้อนกัน?
ปัญหานี้เกี่ยวข้องกับการโรลโอเวอร์จริงๆฉันจะสรุปไว้ด้านล่างดังนี้: ฉันมีมุมมอง 2 มิติและฉันมีรูปสี่เหลี่ยมจำนวนหนึ่งภายในพื้นที่บนหน้าจอ ฉันจะกางกล่องเหล่านั้นอย่างไรไม่ให้ซ้อนทับกัน แต่ปรับให้มีการเคลื่อนไหวน้อยที่สุดเท่านั้น ตำแหน่งของรูปสี่เหลี่ยมผืนผ้าเป็นแบบไดนามิกและขึ้นอยู่กับข้อมูลที่ผู้ใช้ป้อนดังนั้นตำแหน่งของมันจึงอยู่ที่ใดก็ได้ ภาพที่แนบมาแสดงปัญหาและแนวทางแก้ไขที่ต้องการ ปัญหาในชีวิตจริงเกี่ยวข้องกับการโรลโอเวอร์ คำตอบสำหรับคำถามในความคิดเห็น ขนาดของสี่เหลี่ยมไม่คงที่และขึ้นอยู่กับความยาวของข้อความในโรลโอเวอร์ เกี่ยวกับขนาดหน้าจอตอนนี้ฉันคิดว่ามันจะดีกว่าที่จะสมมติว่าขนาดของหน้าจอนั้นเพียงพอสำหรับสี่เหลี่ยม หากมีรูปสี่เหลี่ยมผืนผ้ามากเกินไปและ algo ไม่สามารถแก้ปัญหาได้ฉันก็ต้องปรับแต่งเนื้อหา ข้อกำหนดในการ 'เคลื่อนย้ายน้อยที่สุด' มีไว้สำหรับความไม่แน่นอนมากกว่าข้อกำหนดทางวิศวกรรมที่สมบูรณ์ เราสามารถเว้นวรรคสองรูปสี่เหลี่ยมได้โดยการเพิ่มระยะห่างระหว่างกันให้มาก แต่มันจะดูไม่ดีเมื่อเป็นส่วนหนึ่งของ GUI แนวคิดคือการทำให้โรลโอเวอร์ / สี่เหลี่ยมผืนผ้าใกล้เคียงกับแหล่งที่มา (ซึ่งฉันจะเชื่อมต่อกับแหล่งที่มาด้วยเส้นสีดำ) ดังนั้นไม่ว่าจะ 'ย้ายเพียงหนึ่งสำหรับ x' หรือ 'ย้ายทั้งสองสำหรับครึ่ง x' ก็ใช้ได้

7
แลมด้าคืออะไร?
ใครช่วยให้คำอธิบายที่ดีว่า Lambda คืออะไร? เรามีแท็กสำหรับพวกเขาและพวกเขาอยู่ในความลับของคำถาม C # แต่ฉันยังไม่พบคำจำกัดความและคำอธิบายที่ดีในตอนแรก

4
"การแข่งขันข้อมูล" และ "สภาพการแข่งขัน" เป็นสิ่งเดียวกันในบริบทของการเขียนโปรแกรมพร้อมกัน
ฉันมักจะพบว่ามีการใช้คำเหล่านี้ในบริบทของการเขียนโปรแกรมพร้อมกัน เหมือนกันหรือต่างกัน?

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

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