Sunday, 23 July 2017

Php เฉลี่ยเคลื่อนที่ อาร์เรย์


อันดับแรกคุณใช้ 5 ในสองตำแหน่งในโปรแกรมของคุณฉันเห็นไม่มีเหตุผลสำหรับที่ อาจเป็นไปได้ว่าการคาดหวังของคุณในการป้อนข้อมูลของผู้ใช้นำคุณไปใส่ที่ 5 ซึ่งตัวเลขที่คุณควรใช้ขึ้นอยู่กับการป้อนข้อมูลของผู้ใช้บางทีคุณควรใช้ขนาดของหน้าต่างแทนฉันคาดเดาเล็กน้อยที่นี่ ถัดไปตามที่ lppEdd ชี้ให้เห็นคุณไม่ได้อ่านตัวเลขจากการป้อนข้อมูลของคุณเฉพาะขนาดของหน้าต่างเท่านั้น ถัดไปคุณกำลังประกาศอาร์เรย์ของขนาด n ซึ่งผมเชื่อว่าเป็นขนาดหน้าต่างของคุณไม่ใช่ขนาดของอาร์เรย์ ผมเชื่อว่าทางออกที่แท้จริงสำหรับปัญหานี้คือการใช้ชื่อตัวแปรที่ดีและมีความหมายมากขึ้น รหัสของคุณไม่ได้คอมไพล์เนื่องจากคุณยังไม่ได้ประกาศค่าเฉลี่ยอาร์เรย์ที่คุณพยายามเก็บค่าเฉลี่ยเคลื่อนที่ของคุณไว้ ประการที่ห้าเมื่อคุณต้องการค่าเฉลี่ยของคุณเป็นคู่ คุณต้องแปลงเป็นสองเท่าก่อนที่จะหาร (นี่เป็นปัญหาที่เกิดขึ้นกับคลาสสิกที่สร้างคำถามมากมายเกี่ยวกับ Stack Overflow) ฉันหวังว่านี่จะทำให้คุณมีขั้นตอนเพิ่มเติม สิ่งแรกที่คุณเห็นคือเขาใช้ nextInt () ซึ่งจะคืนค่าจำนวนเต็มเดียวไม่ใช่ array โดยทั่วไปเขาจะใช้อาร์เรย์เต็มไปด้วยศูนย์ ภายในของคุณมีการทำซ้ำอาร์เรย์ทั้งหมดดังนั้นคุณจึงควรได้รับค่าเฉลี่ยเท่ากัน (ค่าหนึ่งสำหรับอาร์เรย์ทั้งหมด) คุณควรปรับค่าจาก 0 เป็นตัวเลขปัจจุบันของด้านนอกสำหรับ แทน. ค่าเฉลี่ยเคลื่อนที่ของคุณกำลังได้รับการอัปเดตตามค่า j ภายในของคุณซึ่งหมายความว่าจะแทนที่ค่าก่อนหน้านี้ทุกลูปใหม่ซึ่งควรอยู่ภายในภายนอกแทนที่จะใช้ค่า i เป็นดัชนีด้านใน คุณกำลังหาร sumj เพื่อคำนวณค่าเฉลี่ยทุกวงรอบใหม่ j คุณจะหารด้วย 0 ผลรวมครั้งแรก ฉันเชื่อว่าคุณหมายถึงการใช้ j1 แทนดัชนีไม่เหมือนกับความยาวปัจจุบันเคล็ดลับในการแก้ปัญหา: หลีกเลี่ยงการใช้ตัวแปรในอาร์เรย์ของอาร์เรย์คุณควรใช้ array. length แทน สำหรับเรื่องของการทำซ้ำปัญหาของคุณคุณสามารถให้เราแยกปัญหาแทนรหัสปัจจุบันของคุณ ลองนึกภาพดูว่าข้อผิดพลาดอยู่ในอินพุทของคุณอย่างไรเราเชื่อว่าคุณใช้พวกเขาจริงๆตอบ 4 ต. ค. ที่ผ่านมา 20:54 คุณกำลังวนรอบข้อมูลทั้งหมดทุกครั้ง คุณควรมีสำหรับ (int j (igtaverageLengthi-averageLength2: 0) jlt iaverageLength2 ampamp jltnumDataPoints j) (หรือบางอย่างที่คล้ายกัน) สำหรับค่าเฉลี่ยด้านในสุดของคุณ นอกจากนี้ moveAverageisumj ควรได้รับการปรับเปลี่ยนเพื่อจัดการกับกรณีเมื่อ j มีค่าเป็น 0 โดยเฉพาะอย่างยิ่งควรจะเคลื่อนย้าย AverageisumaverageLength และควรใช้กับสล็อต movingAveragei นอกวงเฉลี่ย ตอบเมื่อวันที่ 4 ต. ค. ที่ 20:42 ครั้งต่อไปให้นำความคิดเห็นเกี่ยวกับงานออกจากคำถามก่อนจะโพสต์ แต่เนื่องจากคุณดูเหมือนจะยังใหม่อยู่ในนี้ลองนึกถึงวิธีการที่คุณจะต้องผ่านข้อมูลและทำให้มันทำอย่างนั้น คุณควรพยายามตรวจสอบให้แน่ใจว่าแต่ละลูปกำลังหยุดที่จุดที่ถูกต้องและจำไว้ว่าถ้าคุณจะหยุดเมื่อไม่มีตัวเลขมากขึ้น (เช่นเมื่อคุณกำลังทำลูปภายในและคุณจะได้เพียง 3 หมายเลขแทน 4) โปรแกรมต้องหยุดเกินไป ตรวจสอบว่ารหัสของคุณกำลังตรวจสอบ ตอบ 4 ต. ค. ที่ 20:56 หากไม่มีข้อมูลเพิ่มเติมใด ๆ คุณอาจต้องมีค่าเฉลี่ยเคลื่อนที่แบบไม่ถ่วงน้ำหนัก ที่จุดใด Ai ในอาร์เรย์ใส่ A ยาว N (with 0ltiltN) นั่นหมายความว่าค่าเฉลี่ยของรายการ K ก่อนหน้าของอาร์เรย์ถึงและรวมถึง Ai ถ้ามีค่า K เช่นค่าเฉลี่ย (i1) จาก A0 ถึง Ai รวมทั้ง นิด ๆ หน่อย ๆ ของความคิดจะแสดงให้เห็นว่าคุณไม่จำเป็นต้องเพิ่มขึ้นทุกค่า K ทุกครั้ง เพียงเก็บผลรวมและเมื่อย้ายไปยังจุดถัดไป (ซึ่งเป็นค่าเฉลี่ยเคลื่อนที่) ลบค่าที่ถูกแทนที่และเพิ่มค่าใหม่ที่จะแทนที่ (ในช่วงจุดแรกของ K-1 คุณจะเพิ่มมูลค่าใหม่ให้กับผลรวมและเพิ่มจำนวนเคาน์เตอร์ของคุณลง 1) ณ จุดใด ๆ ในกระบวนการนี้ค่าเฉลี่ยเคลื่อนที่คือจำนวนเงินปัจจุบันที่หารด้วยค่าการนับปัจจุบัน ตอบ 4 ต. ค. 52 เวลา 21:05 ค่าเฉลี่ยเคลื่อนที่คุณต้องมีขนาดหน้าต่างอยู่บ้าง ขนาดหน้าต่างของคุณมีความยาวเฉลี่ยดังนั้นจึงจะมีลักษณะดังนี้: ลูปสำหรับเริ่มต้นที่ข้อมูลปัจจุบันและย้อนกลับจุดข้อมูล averageLength และเพิ่มค่าขึ้น คุณจะมีค่าเฉลี่ยเคลื่อนที่เมื่อคุณมีเมื่อมีจุดข้อมูลเพียงพอและค่าเฉลี่ยจะเป็นผลรวมหารด้วยความยาวเฉลี่ย หมายเหตุ: ไม่ได้ทดสอบรหัส sudo เพียง แต่นี่เป็นความคิด #: 22430 c # exchange exchange-2003 User: n / a Answer: 3159 Stack Exchange, Inctraderema ฟังก์ชัน traderema () ไม่ทำงานไม่ถูกต้อง มันคำนวณเพียงเฉลี่ยของรายการงวดล่าสุด ทำตามรหัสต่อไปนี้สำหรับ traderema: function EMACalculator (array, array) EMApreviousday array0 printr (array) multiplier1 (2limit1) EMAarray () อาร์เรย์ EMA1 ปิดอาร์เรย์ 1 ในขณะที่ (จำกัด ) echoEMA คือ EMAn EMAp (EMApreviousday) multiplier1 EMApreviousday EMApreviousday EMA limit - - กลับ EMA ที่ขีด จำกัด ยอมรับระยะเวลาของ ema และอาร์เรย์ ยอมรับอาร์เรย์ของข้อมูลสำหรับการคำนวณ ema ถ้าคุณต้องการตรวจสอบว่ามีเช่นสตริงเท่านั้นในอาร์เรย์คุณสามารถใช้การรวมกันของ arraysum และ arraymap เช่นนี้ function onlystringsinarray arr return arraysum (arraymap (isstring. arr) ) arr อาร์เรย์ arr_1 (หนึ่งสองสาม) arr2 อาร์เรย์ (foo แถบอาร์เรย์ ()) arr3 อาร์เรย์ (foo อาร์เรย์ () แถบ) arr4 อาร์เรย์ (array (), foo บาร์) vardump (onlystringsinarray (arr1), onlystringsinarray (arr2), onlystringsinarray (arr3), onlystringsinarray (arr4)) gt จะให้ผลลัพธ์ดังนี้ bool (true) bool (false) bool (false) bool (false)

No comments:

Post a Comment