Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Räkna ut medeltal

Postades av 2009-03-06 18:55:58 - Jonas Sjöblom, i forum matte/fysik/beräkna, Tråden har 3 Kommentarer och lästs av 9726 personer

Matte är inte direkt min starka sida, det här är antagligen väldigt enkelt.

Jag har ett tal, t.ex. 7,26 som jag vet är medeltalet av 20 andra (okända) tal.
Nu vill jag ta med en till siffra i uträkningen av medeltalet.

En lösning är ju:
((Medeltalet * Antal) + NyaTalet) / (Antal + 1)

Men finns det enklare sätt? Den här uträkningen kommer köras många gånger i en applikation (ASP.NET, C#), kan det påverka prestandan mycket om det är dåligt skrivet?


Svara

Sv: Räkna ut medeltal

Postades av 2009-03-06 21:47:20 - Andreas Hillqvist

Ett alternativ kan vara att lagra summan och antalet.
Sedan beräkna genomsnittet. Borde ge ett mer exakt värde, då flyttal inte är helt exakta (t.ex (1+3+6)/3 = 10/3, lägg till (10+1)/3+1 = 11/4 och lägg till ett igen (11+1)/4+1 = 12/5).

Eventuellt kan du beräkna genomsnittet och mellanlagra det om du gör fler läsningar än uppdateringar.


Svara

Sv: Räkna ut medeltal

Postades av 2009-03-06 21:59:27 - Niklas Jansson

<b>>Men finns det enklare sätt?</b>
Nej, det är den formeln du får utgå ifrån, och det enda du kan göra är att flytta runt termerna i den.
Men...

<b>>kan det påverka prestandan mycket om det är dåligt skrivet?</b> (det är klart det kan...)
...men beroende på hur man löser det kan man få diverse problem. Ett problem du har nu är cancellation. Beroende på hur du använder dina data kan man lägga upp det på olika sätt.

Du har i princip tre alternativ + olika cachningsprinciper:
1. Gör det du gör nu; lagra medelvärdet och antalet tal. Så fort du vill hämta medelvärdet tar du bara det talet, när du vill lägga till använder du din formel. När du får tillräckligt många tal så kommer "Nya talet" inte längre kunna påverka "Medeltal*antal", och kancellationen är ett faktum. Från den punkten och framåt kommer medeltalet inte ändras.
2. Lagra istället "total summa hittils" och antalet tal. Så fort du vill hämta medelvärdet räknar du ut det, när du vill lägga till ett tal ökar du bara summan med talet och antalet med 1. Kancellationen kan nu ev. bli liiite bättre, men skillnaden borde vara försumbar.
3. Lagra alla tal. Sortera dem i nummerordning, summera dem underifrån (0.1+0.1+0.3+0.7) för att få totalen, och dividera sen med antalet. Kancellationen är "borta", men det är ganska ineffektivt.

Sen kan du ju cacha resultatet från 2:an eller 3:an om du känner att du har prestandaproblem.
Men om du inte bryr dig om kancellation så får det vara jävligt många beräkningar av den typen som du får göra om det ska spela någon roll.


Svara

Sv:Räkna ut medeltal

Postades av 2009-03-07 15:44:24 - Jonas Sjöblom

Tack för svaren! #2 är absolut den bästa lösningen inser jag nu. jag kör på det spåret :)


Svara

Nyligen

  • 19:42 Online Casinos for Haitian Players
  • 19:38 Rekommendera något intressant
  • 19:13 Международная перевозка грузов
  • 00:01 DL Van Tuning | Exclusive Body Kit
  • 12:08 Indian casino
  • 04:14 Vad finns det för kratomalternativ
  • 14:16 Indian online casino
  • 14:15 Indian online casino

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 877
27 965
271 771
641
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies