(* The Equilbrium Price and Quantity for a Supplied Set of Values or Costs *) counter[v_, c_] := Reverse[Sort[Flatten[v]]] - Sort[Flatten[c]] eq[{{1, 0}, {4, 0}, {7, 0}, {8, 8}}, {{2, 10}, {4, 10}, {4, 10}, {5, 10}}] eq[{{1, 0}, {4, 0}, {4, 0}, {8, 8}}, {{2, 10}, {4, 10}, {4, 10}, {5, 10}}] demandsupply[{{1, 0}, {4, 0}, {4, 0}, {8, 8}}, {{2, 10}, {4, 10}, {4, 10}, {5, 10}}] buyerinterval[v_, c_] := {Reverse[Sort[Flatten[v]]] [[Length[Select[counter[v, c], Positive]]]], Reverse[Sort[Flatten[v]]] [[Length[Select[counter[v, c], greaterthan[0]]] + 1]]}; greaterthan[x_] := Function[z, z >= x] buyerinterval[{{1, 0}, {4, 0}, {4, 0}, {8, 8}}, {{2, 10}, {4, 10}, {4, 10}, {5, 10}}] sellerinterval[v_, c_] := {Sort[Flatten[c]] [[Length[Select[counter[v, c], Positive]]]], Sort[Flatten[c]] [[Length[Select[counter[v, c], greaterthan[0]]] + 1]]}; sellerinterval[{{1, 0}, {4, 0}, {4, 0}, {8, 8}}, {{2, 10}, {4, 10}, {4, 10}, {5, 10}}] ep[{{1, 0}, {4, 0}, {4, 0}, {8, 8}}, {{2, 10}, {4, 10}, {4, 10}, {5, 10}}] surplus[{{1, 0}, {4, 0}, {4, 0}, {8, 0}}, {{2, 10}, {4, 10}, {4, 10}, {5, 10}}] surplus[{{1, 0}, {4, 0}, {4, 0}, {8, 8}}, {{2, 10}, {4, 10}, {4, 10}, {5, 10}}]