Apr. 16th, 2020

vlkamov: Рембрандт. Автопортрет с широко открытыми глазами. (Default)
< ---------- начало перепоста ------------ >

О хлебе и молоке


Правда это или нет точно не знаю, но некогда, еще в те былинные времена, когда молоко было от коровы, а не от пальмы, а хлеб делали не из опилок, как сейчас, слышал такую поучительную байку...

юмор_сюда_подошел_молоко_для_гопниковВ одной торговой сети, эффективные менеджеры, управлявшие ей, вдруг обнаружили, что торговля молоком и хлебом почти не приносит прибыли и,  естественно, решили ее оптимизировать. Причем, целиком и полностью. Примерно через месяц после этого решения прибыли сети катастрофически сократились (насколько помню, примерно на треть), в результате выяснилось, что люди приходят в магазин не за одним товаром, а за комплектом всего необходимого, стараясь все закупить в одном месте. Когда обнаружилось, что в привычной сети не хватает хлеба и молока, то они просто стали пользоваться другой, где они были.

Тогда наши менеджеры пошли по другому пути и вернули хлеб и молоко на полки магазинов, но повысили цену настолько, чтобы они стали прибыльными. И это не дало никакого положительного эффекта, народ не только не вернулся, но и продолжал потихоньку сбегать к конкурентам. Причиной оказалось то, что люди хорошо помнят цены именно на самые привычные и распространенные продукты. В результате простого сопоставления они быстро обнаруживали, что хлеб и молоко в этой сети "золотые", стоят намного дороже, чем в других местах, вполне естественно делали вывод, что это касается всего ассортимента, и закономерно бежали за покупками в другие места. Полагая, что этот магазин слишком уж дорог для них (иногда жаба душит даже богатых людей).

В результате понесенных убытков у злосчастной сети магазинов поменялся собственник, который решил снизить цены на самые ходовые и дешевые продукты практически до уровня закупочных, а убыток от этого компенсировать за счет цен на товары премиум-класса. В результате и оборот, и прибыль сети выросли почти в три раза... Потому что даже бедные люди иногда покупают товары, прибыльные для торговой сети, и даже богатые люди любят "экономить" на покупках, оценивая дороговизну магазинов по привычным дешевым и ходовым вещам. К сожалению, по моим наблюдениям, эта замечательная история никого ничему не научила. Хозяевам нашей невидимой руки рынка явно не хватает невидимой головы:)
< ---------- конец перепоста ------------ >
vlkamov: Рембрандт. Автопортрет с широко открытыми глазами. (Default)
Изрядно лет тому назад, аз в ЖЖ же показал пример кодирования на почти-русском-языке-C :-)
https://vlkamov.livejournal.com/685130.html
- несколько функций для векторной алгебры

Прошли годы, моя требовательность к читабельности повысилась и пиши я сейчас тот код, выглядел бы он так:
вектор Сумма_векторов( v1, v2)
          вектор v1, v2;
       {
          вектор СУММА;
          СУММА.X = v1.X + v2.Y;
          СУММА.Y = v1.Y + v2.Y;
          СУММА.Z = v1.Z + v2.Z;
          return СУММА;
       }

double Длина_вектора( v1)
          вектор v1;
       {
          double ДЛИНА;
          ДЛИНА = sqrt(v1.X*v1.X + v1.Y*v1.Y + v1.Z*v1.Z);
          return ДЛИНА;
       }

вектор Нормализованный_вектор( v1)
          вектор v1;
       {
          вектор vN;
          double ДЛИНА;
          ДЛИНА = sqrt(v1.X*v1.X + v1.Y*v1.Y + v1.Z*v1.Z);
          vN.X = v1.X / ДЛИНА;
          vN.Y = v1.Y / ДЛИНА;
          vN.Z = v1.Z / ДЛИНА;
          return vN;
       }

double Скалярное_произведение_векторов( v1, v2)
          вектор v1, v2;
       {
          double ПРОИЗВЕДЕНИЕ;
          ПРОИЗВЕДЕНИЕ = v1.X*v2.X + v1.Y*v2.Y + v1.Z*v2.Z;
          return ПРОИЗВЕДЕНИЕ;
       }

вектор Произведение_вектора_числа( v1, k )
          вектор v1;
          double k;
       {
          вектор vN;
          vN.X = v1.X * k;
          vN.Y = v1.Y * k;
          vN.Z = v1.Z * k;
          return vN;
       }

вектор Произведение_векторов( v1, v2)
          вектор v1, v2;
       {
          вектор ПРОИЗВЕДЕНИЕ;
          ПРОИЗВЕДЕНИЕ.X = v1.Y*v2.Z - v1.Z*v2.Y;
          ПРОИЗВЕДЕНИЕ.Y = v1.Z*v2.X - v1.X*v2.Z;
          ПРОИЗВЕДЕНИЕ.Z = v1.X*v2.Y - v1.Y*v2.X;
          return ПРОИЗВЕДЕНИЕ;
       }


Не уверен, что компилятор сумеет
define вектор struct ВЕКТОР
поэтому я бы сделал это в своем препроцессоре.

Наверное и double заменил бы на что-то менее двусмысленное, чтобы сразу было видно, что это 64-битное число с плавающей запятой.

Profile

vlkamov: Рембрандт. Автопортрет с широко открытыми глазами. (Default)
vlkamov

June 2025

S M T W T F S
1 2 3 4 5 67
8 9 10 11 1213 14
15 161718192021
22232425262728
2930     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 19th, 2025 11:20 pm
Powered by Dreamwidth Studios