Существуют несколько действительно, действительно старые приемы, которые я удивлен не видеть здесь.
atan (1) == PI/4, таким образом, старая история, когда защищенная функция арктангенса присутствует, 4*atan (1).
очень милый А, оценка фиксированного отношения, которая заставляет старый Западный 22/7 быть похожим на грязь, является 355/113, который хорош к нескольким десятичным разрядам (по крайней мере три или четыре, я думаю). В некоторых случаях это даже достаточно хорошо для целочисленной арифметики: умножьтесь на 355, тогда делятся на 113.
355/113 также легко запомнить (для некоторых людей так или иначе): считайте один, один, три, три, пять, пять и помните именование цифр в знаменателе и числителе (если Вы забываете, какой триплет идет на вершину, мысль микросекунды обычно собирается выяснить его).
Указание, которое 22/7 дает Вам: 3.14285714, который является неправильным в тысячных частях.
355/113 дает Вам 3.14159292, который не является неправильным до этих десяти миллионных частей.
Acc. к/usr/include/math.h на моем поле, M_PI является #define'd как: 3.14159265358979323846, который, вероятно, хорош, насколько это идет.
урок Вы добираетесь от оценки, что PI - то, что существует много способов сделать его, ни один никогда не будет прекрасен, и необходимо уладить их надлежащим использованием.
355/113 является старой китайской оценкой, и я полагаю, что он предшествует 22/7 на многие годы. Этому преподавал меня преподаватель физики, когда я был старшекурсником.
версия 1:
SELECT max(id) id, name
FROM cards
WHERE name like '%John%'
GROUP BY name
ORDER BY CASE WHEN name like 'John %' THEN 0
WHEN name like 'John%' THEN 1
WHEN name like '% John%' THEN 2
ELSE 3
END, name
версия 2:
SELECT max(id) id, name
FROM cards
WHERE name like '%John%'
GROUP BY name
ORDER BY CASE WHEN name like 'John%' THEN 0
WHEN name like '% %John% %' THEN 1
WHEN name like '%John' THEN 2
ELSE 3
END, name