Membangun logika / kode brilian dari Mathematix dan scottyc, saya serahkan:
DECLARE @a INT, @b INT, @c INT = 0
WHILE @c < 100
BEGIN
SET @c += 1
SET @a = ROUND(RAND()*100,0)-50
SET @b = ROUND(RAND()*100,0)-50
SELECT @a AS a, @b AS b,
@a - ( ABS(@a-@b) + (@a-@b) ) / 2 AS MINab,
@a + ( ABS(@b-@a) + (@b-@a) ) / 2 AS MAXab,
CASE WHEN (@a <= @b AND @a = @a - ( ABS(@a-@b) + (@a-@b) ) / 2)
OR (@a >= @b AND @a = @a + ( ABS(@b-@a) + (@b-@a) ) / 2)
THEN 'Success' ELSE 'Failure' END AS Status
END
Meskipun lompatan dari fungsi MIN scottyc ke fungsi MAX seharusnya sudah jelas bagi saya, ternyata tidak, jadi saya sudah menyelesaikannya dan memasukkannya di sini: SELECT @a + (ABS (@ b- @ a) + ( @ b- @ a)) / 2. Angka-angka yang dihasilkan secara acak, meskipun bukan bukti, setidaknya harus meyakinkan skeptis bahwa kedua formula itu benar.