คำถามติดแท็ก math

คำถามการเขียนโปรแกรมที่ได้รับผลกระทบอย่างมีนัยสำคัญหรือดีที่สุดที่กำหนดโดยคณิตศาสตร์พื้นฐานของปัญหา

4
ทักษะคณิตศาสตร์เบื้องต้นสำหรับหนังสือ Introduction to Algorithms (CLRS) หนังสือ [ปิด]
ฉันมีความรู้เกี่ยวกับอัลกอริทึมพื้นฐานแล้ว ตอนนี้ผมวางแผนที่จะศึกษาขั้นตอนวิธีการล่วงหน้ามากขึ้นและฉันตัดสินใจไปกับรู้เบื้องต้นเกี่ยวกับอัลกอริทึม ฉันไม่แน่ใจฉันต้องรีเฟรชทักษะคณิตศาสตร์ก่อนอ่านหนังสือเล่มนี้หรือไม่? (ฉันลืมคณิตศาสตร์เกือบทั้งหมดที่ฉันเรียนในโรงเรียนมัธยมและวิทยาลัย) หากหนังสือเล่มนี้ต้องการความรู้ด้านคณิตศาสตร์ที่แข็งแกร่งโปรดแนะนำวิชาที่ได้รับประโยชน์ ฉันต้องการเรียนรู้เกี่ยวกับการใช้งานการออกแบบและการวิเคราะห์อัลกอริทึม

3
เป็นวิธีที่มีประสิทธิภาพในการค้นหาทศนิยมซ้ำอะไร
ฉันกำลังพยายามที่จะหาขั้นตอนวิธีการที่มีประสิทธิภาพใน Java เพื่อหาสิ่งที่เป็นส่วนหนึ่งของการทำซ้ำทศนิยมสองจำนวนเต็มaและที่ba/b เช่น. 5/7 = 0.714258 714258 .... ขณะนี้ฉันรู้วิธีการแบ่งแบบยาวเท่านั้น
24 algorithms  math 

11
คณิตศาสตร์พื้นฐานได้รับการประเมินอย่างมีประสิทธิภาพโดยภาษาโปรแกรมอย่างไร
เมื่อฉันมีส่วนร่วมมากขึ้นกับทฤษฎีที่อยู่เบื้องหลังการเขียนโปรแกรมฉันพบว่าตัวเองหลงใหลและงงงวยจากสิ่งที่ดูเหมือนง่าย .. ฉันรู้ว่าความเข้าใจของฉันเกี่ยวกับกระบวนการพื้นฐานส่วนใหญ่ได้รับการพิสูจน์ด้วยตรรกะวงกลม ถาม : มันทำงานอย่างไร A :เพราะมันทำ! ฉันเกลียดการรับรู้นี้! ฉันรักความรู้และยิ่งไปกว่านั้นฉันรักการเรียนรู้ซึ่งทำให้ฉันมีคำถาม (แม้ว่ามันจะเป็นวงกว้าง) คำถาม: ผู้ประกอบการทางคณิตศาสตร์ขั้นพื้นฐานประเมินด้วยภาษาการเขียนโปรแกรมอย่างไร วิธีการปัจจุบันได้รับการปรับปรุงอย่างไร ตัวอย่าง var = 5 * 5; การตีความของฉัน: $num1 = 5; $num2 = 5; $num3 = 0; while ($num2 > 0) { $num3 = $num3 + $num1; $num2 = $num2 - 1; } echo $num3; ดูเหมือนว่าจะไม่มีประสิทธิภาพสูง ด้วยปัจจัยที่สูงกว่าวิธีนี้จะช้ามากในขณะที่วิธีการมาตรฐานในตัวเป็นแบบทันที …
22 math  evaluation 

7
รหัสฐานขนาดใหญ่ที่ Fortran สามารถบีบอัดให้ทันสมัยได้อย่างไร?
เพื่อนในสถาบันการศึกษาขอคำแนะนำจากฉัน (ฉันเป็นนักพัฒนาแอปพลิเคชันทางธุรกิจ C #) เขามี codebase ดั้งเดิมซึ่งเขาเขียนที่ Fortran ในวงการถ่ายภาพทางการแพทย์ การบีบอัดตัวเลขเป็นจำนวนมากโดยใช้เวกเตอร์ เขาใช้คลัสเตอร์ (30ish cores) และตอนนี้ได้เข้าสู่เวิร์กสเตชันเดียวที่มี 500ish GPUS ในนั้น อย่างไรก็ตามจะไปที่ไหนต่อไปกับ codebase ดังนั้น: คนอื่นสามารถรักษามันไว้ได้ในรอบ 10 ปีถัดไป เร็วขึ้นเมื่อปรับแต่งซอฟต์แวร์ สามารถทำงานบนโครงสร้างพื้นฐานที่แตกต่างกันโดยไม่ต้องคอมไพล์ใหม่ หลังจากการวิจัยจากฉัน (นี่คือพื้นที่ที่น่าสนใจสุด ๆ ) บางตัวเลือกคือ: ใช้ Python และCUDAจากNvidia เขียนซ้ำในภาษาที่ใช้งานได้ ตัวอย่างเช่นF #หรือHaskell ใช้ระบบคลาวด์และใช้บางอย่างเช่นHadoopและ Java เรียนรู้ค ประสบการณ์ของคุณเกี่ยวกับสิ่งนี้คืออะไร? สิ่งที่เพื่อนของฉันควรจะดูเพื่อปรับปรุง codebase ของเขาให้ทันสมัย อัปเดต: ขอบคุณ @ Mark และทุกคนที่ได้ตอบ เหตุผลที่เพื่อนของฉันถามคำถามนี้ก็คือเวลาที่เหมาะสมในระยะเวลาโครงการเพื่อทำการตรวจสอบ การนำผู้ช่วยวิจัยมาให้เร็วขึ้นใน …
21 math  legacy  fortran 

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

4
ทำไมบทเรียนการเขียนโปรแกรมการทำงานทั้งหมดจึงเป็นคณิตศาสตร์?
ฉันพยายามเรียนรู้การเขียนโปรแกรมการใช้งานและแบบฝึกหัดส่วนใหญ่ฉันพบว่าใช้คณิตศาสตร์เป็นตัวอย่างสำหรับการสร้างที่ซับซ้อนมากขึ้น (แม้จะง่าย ๆ ในบางกรณี) ทำไมนี้ ฉันคิดว่าจะสามารถใช้บางสิ่งได้ง่ายขึ้น มันทำให้ยากต่อการเรียนรู้ ข้อมูลพื้นฐาน: ฉันเขียนซอฟต์แวร์มา 12 ปีแล้ว ฉันเข้าใจแนวคิดบางอย่างเช่นการปิดการทำงานเป็นพลเมืองชั้นหนึ่งและชื่อสามัญ ฉันอาจจะมีปัญหากับฟังก์ชั่นการสั่งซื้อขั้นสูงในบางระดับขั้นสูง แต่ฉันอยากจะเชื่อว่าฉันมีความเข้าใจพื้นฐาน Monads กำลังกัดฉันในก้นและ ณ จุดนี้ฉันไม่ได้ผ่านที่ (ฉันแน่ใจว่าฉันจะในที่สุดเพราะฉันขัดขืน)

6
อะไรคือรากฐานทางคณิตศาสตร์สำหรับค่าระดับชั้นหนึ่ง / สอง / สามในภาษาโปรแกรม?
ที่เพิ่ม เพิ่งพบสองคำถามที่เกี่ยวข้อง /math//q/1759680/1281 /programming//a/2582804/156458 ในภาษาการเขียนโปรแกรมจาก Pragmatics การเขียนโปรแกรมของ Michael Scott โดยทั่วไปค่าในภาษาการเขียนโปรแกรมถูกกล่าวว่ามี สถานะfi rst-classหากสามารถส่งผ่านเป็นพารามิเตอร์ส่งคืนจากรูทีนย่อยหรือกำหนดให้เป็นตัวแปร ประเภทอย่างง่ายเช่นจำนวนเต็มและตัวอักษรเป็นค่า fi rst-class ในภาษาการเขียนโปรแกรมส่วนใหญ่ ในทางตรงกันข้ามค่า“ ระดับสอง”สามารถส่งผ่านเป็นพารามิเตอร์ แต่ไม่สามารถส่งคืนจากรูทีนย่อยหรือกำหนดให้กับตัวแปรและค่า“ คลาสที่สาม”ไม่สามารถส่งผ่านเป็นพารามิเตอร์ได้ ฉลากเป็นค่าระดับที่สามในภาษาการเขียนโปรแกรมส่วนใหญ่ แต่ค่าระดับที่สองใน Algol รูทีนย่อยแสดงการเปลี่ยนแปลงมากที่สุด พวกเขาเป็นค่าแรกในทุกภาษาโปรแกรมการทำงานและภาษาสคริปต์ส่วนใหญ่ พวกเขายังเป็นค่า class rst-class ใน C # และด้วยข้อ จำกัด บางอย่างในภาษาที่จำเป็นอื่น ๆ รวมถึง Fortran, Modula-2 และ -3, Ada 95, C และ C ++ 11 เป็นค่าระดับที่สองในภาษาที่จำเป็นอื่น ๆ ส่วนใหญ่และค่าระดับที่สามใน …

4
การจัดทำเอกสารตรรกะทางคณิตศาสตร์ในรหัส
บางครั้งถึงแม้ไม่บ่อยนักฉันก็ต้องรวมตรรกะคณิตศาสตร์ไว้ในรหัสด้วย แนวคิดที่ใช้ส่วนใหญ่จะง่ายมาก แต่โค้ดผลลัพธ์ไม่ใช่ - ตัวแปรจำนวนมากที่มีจุดประสงค์ที่ไม่ชัดเจนและการดำเนินการบางอย่างที่มีเจตนาไม่ชัดเจน ผมไม่ได้หมายความว่ารหัสไม่สามารถอ่านหรือ unmaintainable เพียงแค่ว่ามันเป็นwaaaayยากที่จะเข้าใจกว่าปัญหาทางคณิตศาสตร์ที่เกิดขึ้นจริง ฉันพยายามที่จะแสดงความคิดเห็นส่วนที่ยากที่สุดที่จะเข้าใจ แต่มีปัญหาเช่นเดียวกับในเวลาเพียงเข้ารหัสพวกเขา - ข้อความที่ไม่ได้มีการแสดงพลังของคณิตศาสตร์ ฉันกำลังมองหาวิธีที่มีประสิทธิภาพและเข้าใจได้ง่ายขึ้นในการอธิบายตรรกะที่อยู่เบื้องหลังโค้ดที่ซับซ้อนบางอย่างโดยเฉพาะอย่างยิ่งในโค้ดเอง ฉันถือว่า TeX - เขียนเอกสารและสร้างแยกต่างหากจากรหัส แต่ฉันต้องเรียนรู้ TeX และเอกสารจะไม่อยู่ในโค้ด อีกสิ่งหนึ่งที่ฉันคิดคือการถ่ายรูปสัญลักษณ์ทางคณิตศาสตร์สมการและไดอะแกรมที่เขียนบนกระดาษ / ไวท์บอร์ดและรวมไว้ใน javadoc มีวิธีที่ง่ายและชัดเจนกว่าหรือไม่? PS การให้ชื่อที่สื่อความหมาย ( timeOfFirstEventแทนt1) กับตัวแปรทำให้โค้ดมีความละเอียดมากขึ้นและอ่านได้ยากขึ้น

17
สูตรทางคณิตศาสตร์ที่ดีที่ควรทราบสำหรับการเขียนโปรแกรมมีอะไรบ้าง [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้จะเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ล็อคแล้ว คำถามและคำตอบนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ มีสูตรคณิตศาสตร์อะไรบ้างที่คุณได้เรียนรู้ซึ่งช่วยให้คุณเขียนอัลกอริธึมที่ดีขึ้นและกลายเป็นโปรแกรมเมอร์ที่ดีขึ้น ตัวอย่าง: ฉันเรียนรู้เกี่ยวกับสูตรระยะทาง ecludian: sqrt((x1-x2)^2+(y1-y2)^2)ซึ่งช่วยให้ฉันเข้าใจวิธีการค้นหาเช่นวัตถุโดยเปรียบเทียบ 2 ปัจจัย

1
เหตุใด Math.min จึงทำงานกับอาร์เรย์องค์ประกอบเดียว
ตามMDN Math.min NaNยอมรับตัวเลขเท่านั้นและหากมีข้อโต้แย้งไม่ได้เป็นจำนวนก็จะกลับมา มันเป็นความจริงว่าถ้าเราผ่านอาร์เรย์มีหลายหมายเลขเราได้รับNaNเช่นนี้Math.min([1,2])แต่ถ้าเราใช้อาร์เรย์ที่มีเพียงหนึ่งหมายเลขจะกลับตัวเลขในอาร์เรย์เช่นในตัวอย่างนี้:Math.min Math.min([5])ใครบ้างมีความคิดว่าทำไมเราถึงเห็นพฤติกรรมที่ไม่มีเอกสารนี้
17 javascript  math 

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

1
ภาษาโปรแกรมใดที่ใช้เครื่องหมายเปอร์เซ็นต์ (%) เพื่อหมายถึงโมดูโล / ส่วนที่เหลือมา
ภาษาโปรแกรมใดที่ใช้เครื่องหมายเปอร์เซ็นต์ (%) เพื่อหมายถึงโมดูโล / ส่วนที่เหลือมา โพสต์ก่อนหน้า1 นี้อธิบายว่ามีการเลือกสัญลักษณ์% เนื่องจากมีเครื่องหมายสแลชที่ชาญฉลาดสำหรับการดำเนินการที่เกี่ยวข้องกับการหาร นอกจากนี้ยังกล่าวถึงอิทธิพลของการใช้สัญลักษณ์ C อย่างไรก็ตามฉันไม่แน่ใจว่ามันมีต้นกำเนิดใน C. ภาษาการเขียนโปรแกรม B เป็นตัวตั้งต้นของ C และฉันพบคู่มือผู้ใช้สำหรับ B (PDF, หน้า 12) ที่ระบุว่า: ตัวดำเนินการ% แสดงโมดูโล หากตัวถูกดำเนินการทั้งคู่เป็นบวกผลลัพธ์จะถูกต้อง มันไม่ได้กำหนดไว้เป็นอย่างอื่น คู่มือผู้ใช้นั้นลงวันที่ 1972 แม้ว่าประมาณเมื่อ C ปรากฏ มันทำให้ในทางทฤษฎีมีความเป็นไปได้ที่จะมีต้นกำเนิดใน C แต่กลับไปที่ B. แล้วฉันยังไม่สามารถหาข้อมูลจำเพาะสำหรับภาษาอื่น ๆ ก่อนหน้านี้เพื่อแสดงการใช้สัญลักษณ์% ซึ่งฉันเชื่อว่าคำถามนี้ไม่ซ้ำกัน: คำถามนั้นถามว่าทำไมการดำเนินการแบบโมดูโลจึงเป็นพื้นฐานฉันถามเมื่อสัญลักษณ์โดยเฉพาะปรากฏว่าหมายถึงโมดูโล่

7
เราสามารถทำอะไรเพื่อปรับปรุงความสามารถในการอ่านของโค้ดเชิงคณิตศาสตร์ใน C #, Java และสิ่งที่คล้ายกัน? [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ในฐานะที่เป็นทั้งโปรแกรมเมอร์ C และโปรแกรมเมอร์ C # สิ่งหนึ่งที่ฉันไม่ชอบเกี่ยวกับ C # ก็คือฟังก์ชั่นคณิตศาสตร์ verbose เป็นอย่างไร ทุกครั้งที่คุณต้องใช้ฟังก์ชัน Sin, cosine หรือ power คุณจะต้องเพิ่มคลาสสถิตแบบคณิตศาสตร์ล่วงหน้า สิ่งนี้นำไปสู่โค้ดที่ยาวมากเมื่อสมการนั้นง่ายมาก ปัญหาจะยิ่งแย่ลงหากคุณต้องการพิมพ์ข้อมูลชนิด ดังนั้นในความคิดของฉันการอ่านได้รับความเดือดร้อน ตัวอย่างเช่น: double x = -Math.Cos(X) * Math.Sin(Z) + Math.Sin(X) * Math.Sin(Y) * Math.Cos(Z); ตรงข้ามกับเพียงแค่ double x = -cos(X) * sin(Z) + sin(X) * …
16 java  c#  math  readability 

4
จัดการกับตัวเลขจำนวนมากในภาษาที่ไม่สามารถ?
ฉันพยายามที่จะคิดเกี่ยวกับวิธีที่ฉันจะไปเกี่ยวกับการคำนวณในจำนวนมาก (เพื่อ infinitum - intergers ไม่ลอย) หากโครงสร้างภาษาไม่สามารถจัดการตัวเลขที่มีขนาดใหญ่กว่าค่าที่แน่นอน ฉันแน่ใจว่าฉันไม่ใช่คนแรกและคนสุดท้ายที่ถามคำถามนี้ แต่คำค้นหาที่ฉันใช้ไม่ได้ให้อัลกอริทึมแก่ฉันในการรับมือกับสถานการณ์เหล่านั้น คำแนะนำส่วนใหญ่จะเสนอการเปลี่ยนแปลงภาษาหรือการเปลี่ยนแปลงตัวแปรหรือพูดคุยเกี่ยวกับสิ่งที่ดูเหมือนจะไม่เกี่ยวข้องกับการค้นหาของฉัน ดังนั้นฉันต้องการไกด์เล็กน้อย ฉันจะร่างอัลกอริทึมแบบนี้: กำหนดความยาวสูงสุดของตัวแปรจำนวนเต็มสำหรับภาษา หากตัวเลขมีความยาวมากกว่าครึ่งของความยาวสูงสุดของตัวแปรที่แยกออกเป็นอาเรย์ (ให้ห้องเล่นเล็ก ๆ ) ลำดับ Array [0] = ตัวเลขที่อยู่ทางด้านขวา [n-max] = ตัวเลขที่อยู่ทางด้านซ้ายสุด อดีต Num: 29392023 Array [0]: 23, Array [1]: 20, array [2]: 39, array [3]: 29 เมื่อฉันสร้างความยาวครึ่งหนึ่งของตัวแปรเป็นจุดปิดมาร์คฉันก็สามารถคำนวณหาหนึ่งในสิบส่วนหนึ่งร้อย ฯลฯ วางผ่านเครื่องหมายครึ่งทางเพื่อที่ว่าถ้าความยาวสูงสุดของตัวแปรเท่ากับ 10 หลักจาก 0 ถึง 9999999999 ฉันรู้ว่า โดยครึ่งหนึ่งนั้นถึงห้าหลักทำให้ฉันมีห้องเล่น …

2
พยายามเข้าใจ 2N lnN เปรียบเทียบกับ quicksort
ฉันกำลังทำการวิเคราะห์ quicksort ในหนังสือ Algorithms ของ Sedgewick เขาสร้างความสัมพันธ์ที่เกิดซ้ำต่อไปนี้สำหรับจำนวนการเปรียบเทียบใน quicksort ขณะที่เรียงลำดับอาร์เรย์ของรายการ N ที่แตกต่างกัน ฉันมีช่วงเวลาที่ยากลำบากในการทำความเข้าใจสิ่งนี้ ... ฉันรู้ว่าต้องใช้ความน่าจะเป็น 1 / N สำหรับองค์ประกอบใด ๆ ที่จะกลายเป็นเดือยและถ้าหาก k กลายเป็นเดือยย่อยย่อยด้านซ้ายจะมีองค์ประกอบ k-1 และย่อยขวา อาร์เรย์จะมีองค์ประกอบ Nk 1. ค่าใช้จ่ายในการแบ่งพาร์ติชันกลายเป็น N + 1 อย่างไร ต้องใช้ N + 1 เปรียบเทียบกับการแบ่งพาร์ติชันหรือไม่ 2.Sedgewick กล่าวว่าสำหรับแต่ละค่าของ k ถ้าคุณบวกมันความน่าจะเป็นที่องค์ประกอบแบ่งเป็น k + ค่าใช้จ่ายสำหรับสองอาร์เรย์ย่อยที่คุณได้รับสมการข้างต้น ใครสามารถอธิบายสิ่งนี้เพื่อให้ผู้ที่มีความรู้ทางคณิตศาสตร์น้อยลง (ฉัน) สามารถเข้าใจได้? คุณจะหาคำที่สองในสมการได้อย่างไร คำนั้นหมายถึงอะไรกันแน่?

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