ฉันรู้ว่านี่เป็นไปได้ด้วยการเพิ่มตาม: แต่ฉันต้องการหลีกเลี่ยงการเพิ่ม ฉันมี googled และไม่พบตัวอย่างที่เหมาะสมหรืออ่านได้ โดยทั่วไปฉันต้องการติดตามค่าเฉลี่ยเคลื่อนที่ของสตรีมกระแสข้อมูลจำนวนจุดลอยโดยใช้ตัวเลข 1000 ครั้งล่าสุดเป็นตัวอย่างข้อมูล วิธีที่ง่ายที่สุดในการทำแบบทดสอบนี้คือการใช้อาร์เรย์แบบวงกลมค่าเฉลี่ยเคลื่อนที่แบบเสวนาและค่าเฉลี่ยเคลื่อนที่ที่เรียบง่ายกว่าและพบว่าผลลัพธ์จากอาร์เรย์แบบวงกลมเหมาะกับความต้องการของฉันมากที่สุด ถาม 12 มิ.ย. 12 เวลา 4:38 หากความต้องการของคุณเรียบง่ายคุณอาจลองใช้ค่าเฉลี่ยเคลื่อนที่แบบเสวนา ใส่เพียงแค่คุณสร้างตัวแปรสะสมและเมื่อโค้ดของคุณดูที่ตัวอย่างแต่ละโค้ดจะอัปเดตข้อมูลสะสมด้วยค่าใหม่ คุณสามารถเลือกค่า alpha คงที่ระหว่าง 0 ถึง 1 และคำนวณค่านี้: คุณเพียงแค่หาค่า alpha ที่ผลของตัวอย่างที่กำหนดจะใช้เวลาประมาณ 1000 ตัวอย่างเท่านั้น อืมฉันไม่แน่ใจว่านี่เหมาะกับคุณแล้วตอนนี้ฉันวางมันไว้ที่นี่แล้ว ปัญหาคือว่า 1000 เป็นหน้าต่างยาวสวยสำหรับค่าเฉลี่ยเคลื่อนที่ที่อธิบายไม่แน่ใจว่ามีอัลฟาที่จะกระจายค่าเฉลี่ยมากกว่า 1000 หมายเลขล่าสุดโดยไม่ต้อง underflow ในการคำนวณจุดลอย แต่ถ้าคุณต้องการค่าเฉลี่ยที่เล็กลงเช่น 30 ตัวเลขหรือมากกว่านี่เป็นวิธีที่ง่ายและรวดเร็วในการดำเนินการ ตอบ 12 มิ.ย. 12 เวลา 4:44 1 ในโพสต์ของคุณ ค่าเฉลี่ยเคลื่อนที่ที่อธิบายได้จะทำให้ตัวแปรอัลฟ่าเป็นตัวแปรได้ ดังนั้นจึงช่วยให้สามารถใช้คำนวณค่าเฉลี่ยของฐานเวลา (เช่นไบต์ต่อวินาที) ถ้าเวลานับตั้งแต่การอัปเดตสะสมครั้งล่าสุดเป็นเวลามากกว่า 1 วินาทีคุณจะยอมให้ alpha เป็น 1.0 มิเช่นนั้นคุณสามารถปล่อยให้ alpha เป็น (usecs ตั้งแต่ update1000000 ครั้งล่าสุด) ndash jxh Jun 12 12 at 6:21 โดยทั่วไปฉันต้องการติดตามค่าเฉลี่ยเคลื่อนที่ของกระแสอย่างต่อเนื่องของกระแสตัวเลขจุดลอยใช้ล่าสุด 1000 หมายเลขเป็นตัวอย่างข้อมูล โปรดทราบว่าด้านล่างปรับปรุงชุดค่าผสมทั้งหมดเป็นองค์ประกอบที่เพิ่มขึ้นโดยไม่ต้องเสียค่าใช้จ่ายในการคำนวณ O (N) traversal เพื่อคำนวณผลรวม - จำเป็นสำหรับค่าเฉลี่ย - ตามความต้องการ ทั้งหมดถูกกำหนดเป็นพารามิเตอร์อื่นจาก T เพื่อสนับสนุนเช่น ใช้ยาวนานเมื่อรวม 1000 ยาว s, int สำหรับ char s หรือ double เพื่อรวม float s นี่เป็นบิตที่มีข้อบกพร่องในการที่ numsamples อาจผ่าน INTMAX - ถ้าคุณสนใจคุณสามารถใช้ unsigned long long หรือใช้สมาชิกข้อมูล bool พิเศษเพื่อบันทึกเมื่อเติมคอนเทนเนอร์เป็นครั้งแรกในขณะที่วนรอบ numsamples รอบ (ดีที่สุดแล้วเปลี่ยนชื่อบางอย่างที่ไม่เป็นอันตรายเช่น pos) ตอบ 12 มิ.ย. 12 at 5:19 สมมติว่าตัวดำเนินการ quotvoid (T sample) quot ก็คือ quotvoid operatorltlt (T sample) quot ndash o วันที่ 8 มิ.ย. 14 เวลา 11:52 น. oPhút ahhh เห็นดี จริงฉันตั้งใจจะให้โมฆะดำเนิน () (T ตัวอย่าง) แต่แน่นอนคุณสามารถใช้สิ่งที่คุณต้องการสัญกรณ์. จะแก้ไขขอบคุณ ndash Tony D Jun 8 14 at 14: 27Simple round robin (moving average) array ใน C เป็น diagnostic ฉันต้องการแสดงจำนวนรอบต่อวินาทีใน app ของฉัน (คิดเฟรมต่อวินาทีในนักกีฬาคนแรก) แต่ฉันไม่ต้องการแสดงค่าล่าสุดหรือค่าเฉลี่ยตั้งแต่เปิดตัว สิ่งที่ฉันต้องการคำนวณคือค่าเฉลี่ยของค่า X ล่าสุด คำถามของฉันคือฉันคิดว่าเกี่ยวกับวิธีที่ดีที่สุดในการเก็บค่าเหล่านี้ ความคิดแรกของฉันคือการสร้างอาร์เรย์ที่มีขนาดคงที่ดังนั้นมูลค่าใหม่แต่ละค่าจะผลักดันออกไปได้มากที่สุด นี้เป็นวิธีที่ดีที่สุดที่จะทำถ้าเป็นเช่นนั้นฉันจะใช้มันแก้ไข: Heres ชั้นฉันเขียน: RRQueue สืบทอด Queue แต่จะบังคับใช้ความสามารถและ dequeues ถ้าจำเป็น เกี่ยวข้องกับ อาร์เรย์แบบโรบิน (ค่าเฉลี่ยเคลื่อนที่โดยประมาณ) ในอาร์เรย์ C แบบโรบินเฉลี่ย (เคลื่อนที่โดยเฉลี่ย) ใน C ในฐานะการวินิจฉัยฉันต้องการแสดงจำนวนรอบต่อวินาทีในแอปของฉัน (คิดเฟรมต่อวินาทีในนักกีฬาคนแรก) แต่ฉันไม่ต้องการแสดงค่าล่าสุดหรือค่าเฉลี่ยตั้งแต่เปิดตัว สิ่งที่ฉันต้องการคำนวณคือค่าเฉลี่ยของค่า X ล่าสุด สวัสดีครับผมอ่านหนังสือ Silberschatz เกี่ยวกับระบบปฏิบัติการฉบับที่ 7 ทฤษฎีเป็นสิ่งที่ดี แต่ไม่มีการสนับสนุนการออกกำลังกายหรือคำอธิบายที่ละเอียดถี่ถ้วน Im พยายามทำแบบฝึกหัด 5.4 คำนวณเวลารอคอยโดยเฉลี่ยของ round-robin sheduling การใช้งาน round-robin แบบง่ายๆฉันมีแถวที่สูงขึ้นของ User with it IDs ฉันต้องการมอบหมายงานในวัฏจักรให้กับผู้ใช้แต่ละราย นั่นคือ. งานแรกที่ U1 รองจาก U2 thrid ไป U3 ปัญหาของฉันคือ เมื่องานที่สองมาพร้อมแอมป์ในเวลาเดียวกัน U1 จะเสร็จสิ้นการทำงาน งานที่สองอีกครั้งได้รับมอบหมายให้ U1 ins วิธีการสร้าง Round Robin หรือมีวิธีอื่นที่ง่ายกว่า Round Robin ยินดีต้อนรับสู่ LinuxQuestions. org ชุมชน Linux ที่เป็นมิตรและใช้งานได้ ขณะนี้คุณกำลังดู LQ ในฐานะแขก เมื่อเข้าร่วมชุมชนของเราคุณจะสามารถโพสต์หัวข้อรับจดหมายข่าวของเราใช้การค้นหาขั้นสูงสมัครรับข้อมูลหัวข้อและเข้าถึงคุณลักษณะพิเศษอื่น ๆ ได้มากมาย การลงทะเบียนเป็นไปอย่างรวดเร็วง่ายและฟรีอย่างแน่นอน เข้าร่วมชุมชนของเราวันนี้โปรดทราบว่าสมาชิกที่ลงทะเบียนเห็นโฆษณาน้อยลงและ ContentLink ถูกปิดใช้งานโดยสิ้นเชิงเมื่อคุณเข้าสู่ระบบหากคุณมีปัญหาในการลงทะเบียนหรือเข้าสู่ระบบบัญชีของคุณโปรดติดต่อเรา หากคุณต้องการตั้งรหัสผ่านใหม่คลิกที่นี่ โปรดเข้าสู่หน้านี้เพื่อล้างคุกกี้ที่เกี่ยวข้องกับ LQ ทั้งหมด บทนำสู่ระบบ Linux - คู่มือเกี่ยวกับคู่มือคู่มือนี้สร้างขึ้นเพื่อเป็นภาพรวมของระบบปฏิบัติการ Linux มุ่งสู่ผู้ใช้ใหม่ในฐานะการสำรวจและการเริ่มต้นใช้งานด้วยการออกกำลังกายในตอนท้ายของแต่ละบท สำหรับผู้เข้ารับการฝึกอบรมขั้นสูงอาจเป็นการอ้างอิงเดสก์ท็อปและรวบรวมความรู้พื้นฐานที่จำเป็นต่อการดำเนินการกับระบบและการดูแลระบบเครือข่าย หนังสือเล่มนี้มีตัวอย่างชีวิตจริงมากมายที่ได้จากประสบการณ์ของผู้เขียนในฐานะระบบ Linux และผู้ดูแลระบบเครือข่ายครูฝึกและที่ปรึกษา พวกเขาหวังว่าตัวอย่างเหล่านี้จะช่วยให้คุณเข้าใจถึงระบบลีนุกซ์ได้ดีขึ้นและคุณรู้สึกเป็นกำลังใจที่จะลองใช้สิ่งต่างๆด้วยตัวคุณเอง คลิกที่นี่เพื่อรับคู่มือฉบับสมบูรณ์แบบนี้ฟรี Im ใหม่ที่ C และฉันต้องการจะแสดงให้คุณเห็นว่า D Im ทำยากมากที่จะเข้าใจอาร์เรย์ผมอ่านในหนังสือ 3 เล่มและ Im ไม่ได้รับพวกเขาฉันดูตัวอย่างที่ cplusplus เกินไป ฉันคิดว่าให้ลองทำโปรแกรมที่ใช้อาร์เรย์และบางทีฉันสามารถเข้าใจพวกเขาแล้ว ฉัน thougt ของโปรแกรมที่พบโดยเฉลี่ยของตัวเลขที่ฉันพิมพ์ (มันจะง่ายกับห่วงตลอด แต่ฉันต้องการเข้าใจอาร์เรย์) ฉันทำสิ่งที่ฉันทำได้ แต่โปรแกรม does not ทำงานเอาฉันชั่วโมงพยายามคิดออกและดูโปรแกรมอื่น ๆ ว่าพวกเขาจะทำกับอาร์เรย์และฉันปรับเปลี่ยนโปรแกรมหลายครั้งและยัง Im ไม่แน่ใจว่ามันคืออะไรผิด (ฉันมีความคิดไม่ พยายามมากขึ้นทั้งหมด) ดังนั้นบางทีโปรแกรมจะผิดทั้งหมดและไม่เพียง แต่เป็นส่วนหนึ่งของการปรับเปลี่ยนเล็กน้อย sfter ฉันจะดีใจมากถ้าใครอธิบายว่าฉันทำอะไรผิด (ฉันหวังว่ามันจะไม่ผิด :)) และสิ่งที่ฉันต้องเปลี่ยนไปมากกว่าที่จะทำได้ ที่นี่โมดูล: รวมถึง ltcstdiogt รวม ltcstdlibgt รวม ltiostreamgt ใช้ namespace std int int (int int) int int (int nNumberofArgs, char pszArgs) cout ltlt หา avarage ของตัวเลข u พิมพ์จำนวนเชิงลบที่จะหยุด ltltendl int a128 int i for (i 0 i lt 128 i) int sum cout ltlt จำนวน u ต้องการค่าเฉลี่ยของ: cin gtgt sum if (sumlt0) break ai sum cout ltlt ltlt division (a, i) ltlt endl system (PAUSE) กลับ 0 ส่วน int (int b, int i) int accumulator สำหรับ (int b 0 b lt ib) สะสม accumulator bi กลับขอขอบคุณสำหรับความช่วยเหลือ
No comments:
Post a Comment