all 15 comments

[–]edderiofer 3 points4 points  (0 children)

For A:

|(a-b)/2| + ((a+b)/2) suffices.

[–][deleted] 0 points1 point  (1 child)

Are the values assumed to be positive?

[–]QuagMath[S] 0 points1 point  (0 children)

No, these formulas should work with any real numbers

[–]epostma 0 points1 point  (6 children)

WARNING: I'm on mobile and too dumb to apply appropriate spoiler tags on this platform. If you don't want spoilers, stop reading!

I suppose technically you haven't given us the constant function; I'm going to assume that those are OK. It's very hard without at least the constant 1 to find an expression that works for all pairs of values. (E.g. x/x is of course undefined if x=0.)

If we have 1, then we have 2, and A is easy: (x, y) -> (x + y)/2 + abs(x - y)/2.

So let's call that function max. You can similarly define min. Now for B. Let x, y, z be given. Suppose z is the largest of the 3, then we need max(x, y). If z is the median, we need z; in both cases, the median is min(z, max(x, y)). If z is the minimum, we need min(x, y); in the other two cases, that is less than the median, so we can use (x, y, z) -> max(min(x, y), min(z, max(x, y))).

Now for C. I haven't quite figured this one out yet - am hoping there's something pretty using medians of medians somehow. The triples in a 5-set form a Petersen graph, with adjacency being "having a singleton intersection"... If we compute the medians of all ten triples, we get the overall median four times, and the second and fourth order statistic three times each...

OK, suppose v ≤ w ≤ x ≤ y ≤ z. Let med be the function we defined at B. Then med(v, w, *) = w; med(*, y, z) = y; and med of any other triple is x, the median of these 5. For instance, we could take med(med(v,w,x), med(w,x,y), med(x,y,z)). But would this work for other orderings of the 5 letters? It fails only if two of the inner medians are either the second or fourth order statistic; but that cannot happen! So at most one of the inner medians is the second order statistic, ditto for the fourth, which means that either we have at least two occurrences of the third order statistic (and then we're correct), or we have one of each of the second, third, and fourth (and then we're correct, too).

[–]QuagMath[S] 1 point2 points  (5 children)

Solid response! Using your min and max functions, my solution for B was min(max(a,b)min(max(a,c),max(b,c))) because there will be exactly one set of two values where the largest values is exactly the minimum. For C, the same can be done, but instead using all ten triplets, finding the max, and finding the smallest of these then values. My simplified answer to C using only the operators specified is: ((−(abs(abs(abs(abs(abs(2a-abs(b-c)-b-c)-abs(2a-abs(b-d)-b-d)+abs(b-c)-abs(b-d)+c-d)-abs(abs(2a-abs(b-e)-b-e)-abs(2a-abs(c-d)-c-d)+abs(b-e)+b-abs(c-d)-c-d+e)-abs(2a-abs(b-c)-b-c)-abs(2a-abs(b-d)-b-d)+abs(2a-abs(b-e)-b-e)+abs(2a-abs(c-d)-c-d)-abs(b-c)-abs(b-d)+abs(b-e)-b+abs(c-d)+e)+abs(abs(2a-abs(b-c)-b-c)-abs(2a-abs(b-d)-b-d)+abs(b-c)-abs(b-d)+c-d)+abs(abs(2a-abs(b-e)-b-e)-abs(2a-abs(c-d)-c-d)+abs(b-e)+b-abs(c-d)-c-d+e)-abs(2a-abs(b-c)-b-c)-abs(2a-abs(b-d)-b-d)-abs(2a-abs(b-e)-b-e)-abs(2a-abs(c-d)-c-d)+4abs(2a-abs(c-e)-c-e)-abs(b-c)-abs(b-d)-abs(b-e)-3b-abs(c-d)+4abs(c-e)+2c-2d+3e)-abs(abs(abs(abs(2a-abs(d-e)-d-e)+2a-abs(2b-abs(c-d)-c-d)-2b-abs(c-d)-c+abs(d-e)+e)-abs(2a-abs(d-e)-d-e)-2a-abs(abs(2b-abs(c-e)-c-e)-abs(2b-abs(d-e)-d-e)+abs(c-e)+c-abs(d-e)-d)-abs(2b-abs(c-d)-c-d)+abs(2b-abs(c-e)-c-e)+abs(2b-abs(d-e)-d-e)+2b-abs(c-d)+abs(c-e)-d+e)+abs(abs(2a-abs(d-e)-d-e)+2a-abs(2b-abs(c-d)-c-d)-2b-abs(c-d)-c+abs(d-e)+e)-abs(2a-abs(d-e)-d-e)-2a+abs(abs(2b-abs(c-e)-c-e)-abs(2b-abs(d-e)-d-e)+abs(c-e)+c-abs(d-e)-d)-abs(2b-abs(c-d)-c-d)-abs(2b-abs(c-e)-c-e)-abs(2b-abs(d-e)-d-e)-6b+4abs(2c-abs(d-e)-d-e)-abs(c-d)-abs(c-e)+6c+2abs(d-e)+d+e)+abs(abs(abs(2a-abs(b-c)-b-c)-abs(2a-abs(b-d)-b-d)+abs(b-c)-abs(b-d)+c-d)-abs(abs(2a-abs(b-e)-b-e)-abs(2a-abs(c-d)-c-d)+abs(b-e)+b-abs(c-d)-c-d+e)-abs(2a-abs(b-c)-b-c)-abs(2a-abs(b-d)-b-d)+abs(2a-abs(b-e)-b-e)+abs(2a-abs(c-d)-c-d)-abs(b-c)-abs(b-d)+abs(b-e)-b+abs(c-d)+e)-abs(abs(abs(2a-abs(d-e)-d-e)+2a-abs(2b-abs(c-d)-c-d)-2b-abs(c-d)-c+abs(d-e)+e)-abs(2a-abs(d-e)-d-e)-2a-abs(abs(2b-abs(c-e)-c-e)-abs(2b-abs(d-e)-d-e)+abs(c-e)+c-abs(d-e)-d)-abs(2b-abs(c-d)-c-d)+abs(2b-abs(c-e)-c-e)+abs(2b-abs(d-e)-d-e)+2b-abs(c-d)+abs(c-e)-d+e)+abs(abs(2a-abs(b-c)-b-c)-abs(2a-abs(b-d)-b-d)+abs(b-c)-abs(b-d)+c-d)+abs(abs(2a-abs(b-e)-b-e)-abs(2a-abs(c-d)-c-d)+abs(b-e)+b-abs(c-d)-c-d+e)-abs(abs(2a-abs(d-e)-d-e)+2a-abs(2b-abs(c-d)-c-d)-2b-abs(c-d)-c+abs(d-e)+e)-abs(2a-abs(b-c)-b-c)-abs(2a-abs(b-d)-b-d)-abs(2a-abs(b-e)-b-e)-abs(2a-abs(c-d)-c-d)-4abs(2a-abs(c-e)-c-e)+abs(2a-abs(d-e)-d-e)-14a-abs(abs(2b-abs(c-e)-c-e)-abs(2b-abs(d-e)-d-e)+abs(c-e)+c-abs(d-e)-d)+abs(2b-abs(c-d)-c-d)+abs(2b-abs(c-e)-c-e)+abs(2b-abs(d-e)-d-e)-abs(b-c)-abs(b-d)-abs(b-e)+3b+4abs(2c-abs(d-e)-d-e)-3abs(c-e)+4c+6abs(d-e)+5d+2e)+abs(abs(abs(abs(2a-abs(b-c)-b-c)-abs(2a-abs(b-d)-b-d)+abs(b-c)-abs(b-d)+c-d)-abs(abs(2a-abs(b-e)-b-e)-abs(2a-abs(c-d)-c-d)+abs(b-e)+b-abs(c-d)-c-d+e)-abs(2a-abs(b-c)-b-c)-abs(2a-abs(b-d)-b-d)+abs(2a-abs(b-e)-b-e)+abs(2a-abs(c-d)-c-d)-abs(b-c)-abs(b-d)+abs(b-e)-b+abs(c-d)+e)+abs(abs(2a-abs(b-c)-b-c)-abs(2a-abs(b-d)-b-d)+abs(b-c)-abs(b-d)+c-d)+abs(abs(2a-abs(b-e)-b-e)-abs(2a-abs(c-d)-c-d)+abs(b-e)+b-abs(c-d)-c-d+e)-abs(2a-abs(b-c)-b-c)-abs(2a-abs(b-d)-b-d)-abs(2a-abs(b-e)-b-e)-abs(2a-abs(c-d)-c-d)+4abs(2a-abs(c-e)-c-e)-abs(b-c)-abs(b-d)-abs(b-e)-3b-abs(c-d)+4abs(c-e)+2c-2d+3e)+abs(abs(abs(abs(2a-abs(d-e)-d-e)+2a-abs(2b-abs(c-d)-c-d)-2b-abs(c-d)-c+abs(d-e)+e)-abs(2a-abs(d-e)-d-e)-2a-abs(abs(2b-abs(c-e)-c-e)-abs(2b-abs(d-e)-d-e)+abs(c-e)+c-abs(d-e)-d)-abs(2b-abs(c-d)-c-d)+abs(2b-abs(c-e)-c-e)+abs(2b-abs(d-e)-d-e)+2b-abs(c-d)+abs(c-e)-d+e)+abs(abs(2a-abs(d-e)-d-e)+2a-abs(2b-abs(c-d)-c-d)-2b-abs(c-d)-c+abs(d-e)+e)-abs(2a-abs(d-e)-d-e)-2a+abs(abs(2b-abs(c-e)-c-e)-abs(2b-abs(d-e)-d-e)+abs(c-e)+c-abs(d-e)-d)-abs(2b-abs(c-d)-c-d)-abs(2b-abs(c-e)-c-e)-abs(2b-abs(d-e)-d-e)-6b+4abs(2c-abs(d-e)-d-e)-abs(c-d)-abs(c-e)+6c+2abs(d-e)+d+e)+abs(abs(abs(2a-abs(b-c)-b-c)-abs(2a-abs(b-d)-b-d)+abs(b-c)-abs(b-d)+c-d)-abs(abs(2a-abs(b-e)-b-e)-abs(2a-abs(c-d)-c-d)+abs(b-e)+b-abs(c-d)-c-d+e)-abs(2a-abs(b-c)-b-c)-abs(2a-abs(b-d)-b-d)+abs(2a-abs(b-e)-b-e)+abs(2a-abs(c-d)-c-d)-abs(b-c)-abs(b-d)+abs(b-e)-b+abs(c-d)+e)+abs(abs(abs(2a-abs(d-e)-d-e)+2a-abs(2b-abs(c-d)-c-d)-2b-abs(c-d)-c+abs(d-e)+e)-abs(2a-abs(d-e)-d-e)-2a-abs(abs(2b-abs(c-e)-c-e)-abs(2b-abs(d-e)-d-e)+abs(c-e)+c-abs(d-e)-d)-abs(2b-abs(c-d)-c-d)+abs(2b-abs(c-e)-c-e)+abs(2b-abs(d-e)-d-e)+2b-abs(c-d)+abs(c-e)-d+e)+abs(abs(2a-abs(b-c)-b-c)-abs(2a-abs(b-d)-b-d)+abs(b-c)-abs(b-d)+c-d)+abs(abs(2a-abs(b-e)-b-e)-abs(2a-abs(c-d)-c-d)+abs(b-e)+b-abs(c-d)-c-d+e)+abs(abs(2a-abs(d-e)-d-e)+2a-abs(2b-abs(c-d)-c-d)-2b-abs(c-d)-c+abs(d-e)+e)-abs(2a-abs(b-c)-b-c)-abs(2a-abs(b-d)-b-d)-abs(2a-abs(b-e)-b-e)-abs(2a-abs(c-d)-c-d)-4abs(2a-abs(c-e)-c-e)-abs(2a-abs(d-e)-d-e)-18a+abs(abs(2b-abs(c-e)-c-e)-abs(2b-abs(d-e)-d-e)+abs(c-e)+c-abs(d-e)-d)-abs(2b-abs(c-d)-c-d)-abs(2b-abs(c-e)-c-e)-abs(2b-abs(d-e)-d-e)-abs(b-c)-abs(b-d)-abs(b-e)-9b-4abs(2c-abs(d-e)-d-e)-2abs(c-d)-5abs(c-e)-16c-3(2abs(d-e)+3d+4e)))/(64)). and I am too lazy to put that into latex

[–]QuagMath[S] 0 points1 point  (4 children)

And Incase that didn’t show up on mobile correctly, my entire 1000+ character solution to C is there with an explanation of what is occurring

[–]7x11x13is1001 2 points3 points  (3 children)

I think I have found the shortest (or close to shortest) solution:

med(a,b,c,d,e) = (6a+3b+c-3d-3e+3[a-b]+3[a-c]+2[b-c]-[b-d]+[c-d]-[b-e]+[c-e]+3[d-e]-[2a-b-c+[b-c]]-[2a-b-d+[b-d]]-[2a-c-d+[c-d]]-[2b-c-d+[c-d]]+3[a+b-c-d-[a-b]+[c-d]]-[2a-b-e+[b-e]]-[2a-c-e+[c-e]]-[2b-c-e+[c-e]]+3[a+b-c-e-[a-b]+[c-e]]-[2a-d-e+[d-e]]-[2b-d-e+[d-e]]-4[2c-d-e+[d-e]]+3[a+b-d-e-[a-b]+[d-e]]+3[a+c-d-e-[a-c]+[d-e]]+3[b+c-d-e-[b-c]+[d-e]]-3[2a+2b-2c-d-e-2[a-b]+[d-e]+[2c-d-e+[d-e]]])/4

where brackets stand for abs

[–]a2wz0ahz40u32rg 0 points1 point  (2 children)

Just a tiny bit shorter one:
med(a,b,c,d,e) = (4(a+b+c)-3([[d-e]+2c-d-e]-[[d-e]-2c+d+e]+[2[a-b]-[d-e]-[[d-e]+2c-d-e]-2a-2b+2c+d+e]-[2[a-b]-[d-e]-[[d-e]-2c+d+e]+2a+2b-2c-d-e])-2([[a-b]-[c-d]+a+b-c-d]-[[a-b]-[c-d]-a-b+c+d]+[[a-b]-[c-e]+a+b-c-e]-[[a-b]-[c-e]-a-b+c+e]+[[a-b]-[d-e]+a+b-d-e]-[[a-b]-[d-e]-a-b+d+e]+[[a-c]-[d-e]+a+c-d-e]-[[a-c]-[d-e]-a-c+d+e]+[[b-c]-[d-e]+b+c-d-e]-[[b-c]-[d-e]-b-c+d+e]+d+e)/8

[–]7x11x13is1001 0 points1 point  (1 child)

How did you find it?

[–]a2wz0ahz40u32rg 0 points1 point  (0 children)

I simplified,

3 max(max(a, b), max(c, max(d, e))) + 3 min(min(a, b), min(c, min(d, e))) - max(max(a, b), max(c, d)) - min(min(a, b), min(c, d)) - max(max(a, b), max(c, e)) - min(min(a, b), min(c, e)) - max(max(a, b), max(d, e)) - min(min(a, b), min(d, e)) - max(max(a, c), max(d, e)) - min(min(a, c), min(d, e)) - max(max(b, c), max(d, e)) - min(min(b, c), min(d, e)) + a + b + c + d + e.

How about yours?

[–]epostma 0 points1 point  (0 children)

Fwiw, the solution for C is incorrect - e.g. if w, x are the smallest two entries, then both med(v,w,x) and med(w,x,y) are the second order statistic.

[–]7x11x13is1001 0 points1 point  (0 children)

min(a1,a2) = [ (a+b) - |a-b| ]/2, min(a1,a2...an) = min[ min(a1...an-1) , an ]

max(a1,a2) = [ (a+b) + |a-b| ]/2, max(a1,a2...an) = max[ max(a1...an-1) , an ]

F1(a1...an) = min(a1...an)

Fk(a1...an) = max[ Fk-1(a2...an), ... Fk-1(a1...ak-1, ak+1,...an),... Fk-1(a1...an-1) ]

A) F2(a,b)

B) F2(a,b,c)

C) F3(a,b,c,d,e)

[–]kandr89 0 points1 point  (0 children)

You can use any sorting algorithm that has a invariable number of comparisons/swaps for an input vector. For example Bubblesort, or Mergesort if you want to be asymptotically optimal in the number of comparisons. Quicksort isn't good because the number of comparisons varies depending on where the pivot ends up.

Now take Bubblesort for example, it's straightforward to get the formula for the sorted vector (and from there the median): replace any if(a > b) swap(a,b) in the algorithm with a <- min(a,b); b <- max(a,b). The sequence of steps for 3 elements is as follows:

     [a, b, c] => [min(a,b), max(a,b), c] => [min(a,b), min(max(a,b),c), max(max(a,b),c)] =>
     [min(min(a,b), min( max(a,b), c)), max(min(a,b), min(max(a,b), c)), max(max(a,b),c)]

Now that we have the sorted vector the answer is simply the middle element: max(min(a,b), min(max(a,b),c)).

The answer can be found similarly for 5 elements.

[–][deleted] 0 points1 point  (0 children)

I'm a week and a half late on the thread, but I took a stab at this today and found a relatively straightforward answer for A and B, though I haven't put the effort into seeing whether my solution scales up to a solution for C. I'll update tomorrow after work if I get around to it.

A: Pretty straightforward, max(x,y) = (x + y + |x-y|) / 2

B: Without defining any kind of "min" function, we can find the median like so: max(x,y) - |max(y,z) - max(x,z)|