การเขียนโปรแกรม

คำถาม & คำตอบสำหรับโปรแกรมเมอร์มืออาชีพและกระตือรือร้น

30
O (log n) หมายถึงอะไรอย่างแน่นอน
ฉันกำลังเรียนรู้เกี่ยวกับเวลาทำงานของ Big O Notation และเวลาที่ถูกตัดจำหน่าย ฉันเข้าใจความคิดของเวลาเชิงเส้นO (n)ซึ่งหมายความว่าขนาดของอินพุตมีผลต่อการเติบโตของอัลกอริทึมตามสัดส่วน ... และเช่นเดียวกันสำหรับตัวอย่างเช่นเวลากำลังสองO (n 2 )ฯลฯ อัลกอริธึมที่สิบเอ็ด เช่นเครื่องปั่นไฟที่มีการเปลี่ยนแปลงด้วยเวลาO (n!)ที่เติบโตโดยแฟกทอเรียล ตัวอย่างเช่นฟังก์ชันต่อไปนี้คือO (n)เนื่องจากอัลกอริทึมเติบโตตามสัดส่วนของอินพุตn : f(int n) { int i; for (i = 0; i < n; ++i) printf("%d", i); } ในทำนองเดียวกันหากมีการวนซ้ำซ้อนกันเวลาจะเป็น O (n 2 ) แต่O (log n)คืออะไรกันแน่? ยกตัวอย่างเช่นมันหมายความว่าอะไรที่จะบอกว่าความสูงของต้นไม้ไบนารีสมบูรณ์คือO (log n) ? ฉันรู้ (อาจไม่ได้อยู่ในรายละเอียดที่ดี) สิ่งที่ลอการิทึมคือในแง่ที่ว่า: log …

30
วิธีสร้าง div ความสูง 100% ของหน้าต่างเบราว์เซอร์
ฉันมีเลย์เอาต์ที่มีสองคอลัมน์ - ซ้ายdivและขวาdivและขวา ด้านขวาdivมีสีเทาbackground-colorและฉันต้องการมันเพื่อขยายในแนวตั้งขึ้นอยู่กับความสูงของหน้าต่างเบราว์เซอร์ของผู้ใช้ ตอนนี้จุดbackground-colorสิ้นสุดของเนื้อหาชิ้นสุดท้ายในนั้นdivปลายที่ชิ้นสุดท้ายของเนื้อหาในการที่ ฉันได้พยายามheight:100%, min-height:100%;ฯลฯ
2139 html  css  height 

13
ฉันจะแสดงการเปลี่ยนแปลงที่จัดเตรียมไว้ได้อย่างไร
ฉันแสดงการเปลี่ยนแปลงเล็กน้อยเพื่อมุ่งมั่น; ฉันจะดูความแตกต่างของไฟล์ทั้งหมดที่จัดเตรียมไว้สำหรับการส่งครั้งต่อไปได้อย่างไร? ฉันรู้สถานะ gitแต่ฉันต้องการเห็นความแตกต่างที่เกิดขึ้นจริง - ไม่ใช่แค่ชื่อของไฟล์ที่ถูกจัดฉาก ฉันเห็นว่าหน้าคนgit-diff (1)พูดว่า git diff [--options] [-] […] แบบฟอร์มนี้คือการดูการเปลี่ยนแปลงที่คุณทำกับดัชนี (พื้นที่การจัดเตรียมสำหรับการส่งครั้งต่อไป) กล่าวอีกนัยหนึ่งความแตกต่างคือสิ่งที่คุณสามารถบอกคอมไพล์เพื่อเพิ่มในดัชนี แต่คุณยังไม่ได้ คุณสามารถจัดลำดับการเปลี่ยนแปลงเหล่านี้ได้โดยใช้ git-add (1) น่าเสียดายที่ฉันไม่เข้าใจเรื่องนี้ ต้องมีสายการบินเดียวที่มีประโยชน์ซึ่งฉันสามารถสร้างชื่อแทนได้ใช่ไหม
2138 git  diff  dvcs  git-diff  git-stage 

30
ฉันจะเปลี่ยนความสูงได้อย่างไร: 0; สูง: อัตโนมัติ; ใช้ CSS หรือไม่
ฉันกำลังพยายามทำให้<ul>ภาพนิ่งโดยใช้การเปลี่ยน CSS เริ่มต้นปิดที่<ul> เมื่อวันที่โฉบสูงมีการตั้งค่าheight: 0; height:auto;อย่างไรก็ตามสิ่งนี้ทำให้เกิดการเปลี่ยนแปลงไม่ใช่แค่การเปลี่ยน ถ้าฉันทำจากheight: 40px;ไปheight: auto;แล้วมันจะเลื่อนขึ้นไปheight: 0;และจากนั้นก็กระโดดไปที่ความสูงที่ถูกต้อง ฉันจะทำสิ่งนี้ได้โดยไม่ต้องใช้ JavaScript? #child0 { height: 0; overflow: hidden; background-color: #dedede; -moz-transition: height 1s ease; -webkit-transition: height 1s ease; -o-transition: height 1s ease; transition: height 1s ease; } #parent0:hover #child0 { height: auto; } #child40 { height: 40px; overflow: hidden; background-color: …
2134 css  css-transitions 

24
MVP และ MVC คืออะไรและแตกต่างกันอย่างไร
ต้องการปรับปรุงโพสต์นี้หรือไม่? ให้คำตอบโดยละเอียดสำหรับคำถามนี้รวมถึงการอ้างอิงและคำอธิบายว่าทำไมคำตอบของคุณถึงถูกต้อง คำตอบที่ไม่มีรายละเอียดเพียงพออาจแก้ไขหรือลบออกได้ เมื่อมองไปไกลกว่าRAD (ลากวางและกำหนดค่า) วิธีการสร้างส่วนติดต่อผู้ใช้ที่เครื่องมือมากมายขอแนะนำให้คุณมีแนวโน้มที่จะเจอสามรูปแบบการออกแบบที่เรียกว่าModel-View-Controller , Model-View-PresenterและModel-View-ViewModel คำถามของฉันมีสามส่วน: รูปแบบเหล่านี้แก้ไขปัญหาใด พวกเขาคล้ายกันอย่างไร แตกต่างกันอย่างไร

10
JSONP คืออะไรและทำไมมันถูกสร้างขึ้น
ฉันเข้าใจ JSON แต่ไม่ใช่ JSONP เอกสารของ Wikipedia บน JSONคือ (คือ) ผลการค้นหายอดนิยมสำหรับ JSONP มันบอกว่านี้: JSONP หรือ "JSON with padding" เป็นส่วนขยาย JSON โดยจะมีการระบุคำนำหน้าเป็นอาร์กิวเมนต์อินพุตของการโทร ฮะ? สายอะไร นั่นไม่สมเหตุสมผลเลยสำหรับฉัน JSON เป็นรูปแบบข้อมูล ไม่มีการโทร ผลการค้นหาที่ 2คือจากผู้ชายบางชื่อRemyผู้เขียนเกี่ยวกับเรื่องนี้ JSONP: JSONP เป็นการฉีดแท็กสคริปต์ผ่านการตอบสนองจากเซิร์ฟเวอร์ไปยังฟังก์ชันที่ผู้ใช้ระบุ ฉันสามารถเข้าใจได้ แต่ก็ยังไม่มีเหตุผลใด ๆ ดังนั้น JSONP คืออะไร ทำไมมันถูกสร้างขึ้นมา (มันแก้ปัญหาอะไรได้บ้าง)? และทำไมฉันถึงใช้มัน? ภาคผนวก : ฉันเพิ่งสร้างหน้าใหม่สำหรับ JSONPบน Wikipedia; ตอนนี้มีคำอธิบายที่ชัดเจนและละเอียดของ JSONP ตามคำตอบของjvenema

30
ฉันจะทราบได้อย่างไรว่าตัวแปร 'ไม่ได้กำหนด' หรือ 'null'?
ฉันจะตรวจสอบได้อย่างไรว่าตัวแปรundefinedหรือnull? รหัสของฉันเป็นดังนี้: var EmpName = $("div#esd-names div#name").attr('class'); if(EmpName == 'undefined'){ // DO SOMETHING }; <div id="esd-names"> <div id="name"></div> </div> แต่ถ้าฉันทำเช่นนี้ล่าม JavaScript หยุดการทำงาน

30
วิธีพิมพ์ข้อความสีในเทอร์มินัลใน Python
ฉันจะส่งข้อความสีไปยังเครื่องเทอร์มินัลใน Python ได้อย่างไร? สัญลักษณ์ Unicode ที่ดีที่สุดในการเป็นตัวแทนของบล็อกที่มั่นคงคืออะไร?


12
ทำไม GCC จึงไม่ปรับ a * a * a * a * a ถึง (a * a * a) * (a * a * a)?
ฉันกำลังทำการเพิ่มประสิทธิภาพเชิงตัวเลขในแอปพลิเคชันทางวิทยาศาสตร์ สิ่งหนึ่งที่ฉันสังเกตเห็นคือ GCC จะเพิ่มประสิทธิภาพการโทรpow(a,2)โดยรวบรวมมันเข้าไปa*aแต่การโทรpow(a,6)นั้นไม่ได้รับการปรับปรุงและจะเรียกฟังก์ชั่นห้องสมุดpowซึ่งทำให้ประสิทธิภาพช้าลงอย่างมาก (ตรงกันข้ามIntel C ++ Compiler ที่สามารถเรียกทำงานiccได้จะกำจัดการเรียกใช้ไลบรารีpow(a,6)) สิ่งที่ฉันอยากรู้คือเมื่อฉันแทนที่pow(a,6)ด้วยการa*a*a*a*a*aใช้ GCC 4.5.1 และตัวเลือก " -O3 -lm -funroll-loops -msse4" จะใช้ 5 mulsdคำสั่ง: movapd %xmm14, %xmm13 mulsd %xmm14, %xmm13 mulsd %xmm14, %xmm13 mulsd %xmm14, %xmm13 mulsd %xmm14, %xmm13 mulsd %xmm14, %xmm13 ในขณะที่ถ้าฉันเขียน(a*a*a)*(a*a*a)มันจะผลิต movapd %xmm14, %xmm13 mulsd %xmm14, %xmm13 mulsd %xmm14, %xmm13 mulsd …


30
“ ใช้ Runnable” และ“ ยืดเธรด” ใน Java
จากเวลาที่ฉันใช้กับเธรดใน Java ฉันได้พบทั้งสองวิธีในการเขียนเธรด: ด้วยimplements Runnable: public class MyRunnable implements Runnable { public void run() { //Code } } //Started with a "new Thread(new MyRunnable()).start()" call หรือด้วยextends Thread: public class MyThread extends Thread { public MyThread() { super("MyThread"); } public void run() { //Code } } //Started with a "new MyThread().start()" …


10
ทำไม“ 1000000000000000 ในช่วง (1000000000000001)” เร็วมากใน Python 3
ฉันเข้าใจว่าrange()ฟังก์ชั่นซึ่งจริงๆแล้วเป็นประเภทวัตถุใน Python 3สร้างเนื้อหาในทันทีคล้ายกับเครื่องกำเนิด นี่เป็นกรณีที่ฉันคาดว่าบรรทัดต่อไปนี้จะใช้เวลามากเกินไปเพราะในการพิจารณาว่า 1 quadrillion อยู่ในช่วงหรือไม่ต้องสร้างค่า quadrillion: 1000000000000000 in range(1000000000000001) ยิ่งกว่านั้น: ดูเหมือนว่าไม่ว่าฉันจะเพิ่มศูนย์เป็นจำนวนเท่าใดการคำนวณมากหรือน้อยก็ใช้เวลาเท่ากัน ฉันได้ลองสิ่งนี้เช่นกัน แต่การคำนวณก็ยังเกือบจะทันที: 1000000000000000000000 in range(0,1000000000000000000001,10) # count by tens ถ้าฉันพยายามที่จะใช้ฟังก์ชั่นพิสัยของตัวเองผลที่ออกมาไม่ค่อยดีเท่าไหร่ !! def my_crappy_range(N): i = 0 while i < N: yield i i += 1 return อะไรคือสิ่งที่range()วัตถุที่ทำภายใต้ประทุนที่ทำให้มันอย่างรวดเร็ว? คำตอบ Martijn Pieters'ได้รับเลือกเพื่อความสมบูรณ์ของมัน แต่ยังเห็นคำตอบแรก abarnert ของสำหรับการสนทนาที่ดีของสิ่งที่มันหมายถึงการrangeที่จะเป็นที่เต็มเปี่ยมลำดับในหลาม 3 และข้อมูลบางส่วน / คำเตือนเกี่ยวกับความไม่ลงรอยกันศักยภาพในการ__contains__เพิ่มประสิทธิภาพการทำงานข้ามการใช้งานหลาม …

20
HTTP GET พร้อมเนื้อหาคำขอ
ฉันกำลังพัฒนา webservice RESTful ใหม่สำหรับแอปพลิเคชันของเรา เมื่อทำการ GET กับบางเอนทิตีลูกค้าสามารถร้องขอเนื้อหาของเอนทิตี หากพวกเขาต้องการเพิ่มพารามิเตอร์บางอย่าง (ตัวอย่างเช่นการเรียงลำดับรายการ) พวกเขาสามารถเพิ่มพารามิเตอร์เหล่านี้ในสตริงแบบสอบถาม อีกทางหนึ่งฉันต้องการให้ผู้คนสามารถระบุพารามิเตอร์เหล่านี้ในเนื้อหาคำขอ HTTP / 1.1ดูเหมือนจะไม่ได้รับการอนุญาตนี้อย่างชัดเจน สิ่งนี้จะช่วยให้พวกเขาระบุข้อมูลเพิ่มเติมอาจทำให้ง่ายขึ้นในการระบุคำขอ XML ที่ซับซ้อน คำถามของฉัน: นี่เป็นความคิดที่ดีหรือไม่? ไคลเอนต์ HTTP จะมีปัญหากับการใช้เนื้อความคำขอภายในคำขอ GET หรือไม่ http://tools.ietf.org/html/rfc2616
2110 rest  http  http-get 

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