Forum Discussion
List Generate Average as record;
- 8 months ago
I'm not sure what you are asking here.
Clearly in the code z and y are always the same.
But what is this? It makes no sense. Where are you getting this from?
z / 2 <> z = y/2
You can't say a thing (z/2) is not equal (or equal) to another thing (z=y/2).
You can't have an assignment on one side of a logical test like this
Again not sure how esle to explain this other than how I have.
z / 2 <> z = y/2 makes no sense mathematically and I don't know what you are trying to do there.
Phil
i know it does not work the quesiton was why;
if ;
each [x] < List.Count( alist) ,
each [ x = [x] + 1, asum = [asum] + alist {x-1} ,
avg = [avg] + alist {x-1} ] )here asum and avg = same result and x = same result why
avg = ( [avg] + alist {x-1} ) / x ,
avg2 = asum /x ] )does avg not work and avg2 work, as before divtins asum = avg ?
I did explain why it doesn't work 🙂
Let's say you have a list of 3 numbers {2 , 3, 4}
Start with x = 1
Sum = 2
Correct Avg = 2/1 = 2
Your avg = 2/1 = 2
x = 2
Sum = 2 + 3 = 5
Correct Avg = (2 + 3) / 2 = 2.5
Your avg = ([Prev Avg] 2 + 3 ) / 2 = 2.5
All good so far.
x = 3
Sum = 5 + 4 = 9
Correct Avg = (2 + 3 + 4) / 3 = 3
Your avg = ([Prev Avg] 2 .5 + 3 ) / 3 = 1.83333
The way your code was calculating avg is taking the avg from the previous step and adding the next value then dividing by x, which is incorrect
Regards
Phil
- Dicken8 months agoPost Prodigy
ok but you state ; Your avg = ([Prev Avg] 2 .5 + 3 ) / 3 = 1.83333 ,
but if you don't do the divsion it's the correct result example- Dicken8 months agoPost Prodigy
ok but is still dos not seem right ; if i have
= let alist = {1..10} in
List.Generate( ()=> [ x = 1, y = alist {0} ,
z = alist {0} ] ,
each [x] < List.Count( alist) ,
each [x = [x] + 1, y = [y] + alist {x-1} ,
z = [z] + alist {x-1} ] )
so here y = z but z / 2 <> z = y/2 i did pop it into copilot and this si the link
but you seem to get it more than i do. not sure if copiliot links allowed? if not sorry.
https://copilot.microsoft.com/shares/KN8qNunQvmG3Xr88jWNfw- PhilipTreacy8 months agoSuper User
I'm not sure what you are asking here.
Clearly in the code z and y are always the same.
But what is this? It makes no sense. Where are you getting this from?
z / 2 <> z = y/2
You can't say a thing (z/2) is not equal (or equal) to another thing (z=y/2).
You can't have an assignment on one side of a logical test like this
Again not sure how esle to explain this other than how I have.
z / 2 <> z = y/2 makes no sense mathematically and I don't know what you are trying to do there.
Phil
- PhilipTreacy8 months agoSuper User
I'm not sure what you mean when you say if you don't do the division it's the correct result ?
If you don't divide the sum by anything how do you get an average? And how can it be correct?
For the way you are calculating the average if you don't do any division you get a sum of 2.5 + 3 = 5.5. Then what?
The correct sum when x = 3 is 2 + 3 + 4 = 9, not 5.5.
Sorry I'm not sure how else to explain this. If you follow my example I'd have thought that woud make it clear. Maybe try doing my example on paper as working through something by hand can often help understanding rather than reading code and math.
Phil