12 апр. 2007 г.

Задачка: 9 мудрецов

Давным-давно дело было. Решил старый царь жениться на молоденькой девушке, но мудрецы сказали - не бывать свадьбе. На что, царь приказал запереть 9 мудрецов в темнице и дал им ночь на раздумье. Утром их выпустят на площадь и оденут на головы чёрные и белые колпаки, так что каждый мудрец видит других, но не видит цвет своего колпака. Среди колпаков, как минимум, один белый и, как минимум, один чёрный колпак. Глашатай 9 раз призывает выйти все белые колпаки - после этого мудрецы должны разделиться по цветам своих колпаков. Если кто-то в белом колпаке останется среди чёрных колпаков - всех порубают на мясо, ровно как и если чёрный окажется среди белых, ровно как и если кто-то каким-то жестам, и тем более словами, передаст информацию о цвете колпака.

Какую стратегию нужно выработать мудрецам за ночь ?

Задачка: 19 грудусов на 19 равных частей

Дан угол в 19o (градусов). Как при помощи только циркуля разделить его на 19 равных частей ?

Задачка: 7 гирь

Есть гирьки с весами от 1 г до 1кг с шагом в 1 г, т.е. :
1г 2г 3г 4г ... 999г 1000г

Требуется из набора гирек единожды выбрать 7 гирек, так, чтобы потом на чашечных весах (которые могут показывать больше, меньше, равно) можно взвешивать любой груз от 1г до 1кг с шагом в 1г. Количество взвешиваний одного груза не ограничено.

Задачка: три выключателя, три лампочки.

Есть две комнаты - в одной три выключателя, в другой три лампочки накаливания. Каждый выключатель соединён только с одной лампочкой. Необходимо выработать методику в результате которой, произведя манипуляции с выключателями и перейдя в комнату с лампочками определить какой выключатель какой лампочке соответствует. Возвращаться в комнату с выключателями нельзя.

Задачка: два ряда по 7 чисел...

a1, a2, ..., a7 - 7 целых чисел. b1, b2, ..., b7 - те же самые числа, но как-то переставленные. доказать что (a1 - b1)(а2 - b2) .. (a7 - b7) чётное.

29 мар. 2007 г.

Бухайте бухашку !

идём давеча с женой на финтес, на встречу идут какие-то полубомжи с табличкой :
помогите
на
бухло

please
когда между нами осталось полшага - они выдали свою искромётную фразу, добрым и дружелюбным голосом :
- бухайте бухашку :)

28 мар. 2007 г.

CPU vs Memory ?

Если посмотреть внимательно на метод signum в java.lang.Integer, вычисляющим знак целого числа можно увидеть :
    public static int signum(int i) {
// HD, Section 2-7
return (i >> 31) | (-i >>> 31);
}

вместо ожидаемого
    public static int signum(int i) {
return i > 0 ? 1 : i < 0 ? -1 : 0;
}

В первом случае используется дополнительно две ячейки памяти, во втором случае больше используется cpu. Тесты показывают, что в java такая реализация не случайна - такое вычисление знака целого числа быстрее... на ~ 5%.

Задавшись вопросом - почему я помню не всю таблицу умножения, а только какие-то узловые точки. Например - я не помню, сколько будет 6 * 9, я помню, что 6 * 9 = 6 * 10 - 6, т.е (6 << 1)10 - 6. Или сколько будет 5 * n ? Проще сказать, что это 10 * n / 2 т.е (n << 1)10 / 2. Хотя квадраты, конечно же, прожжённое на вечную память.

Почему мы так старательно оптимизируем память, сокращая различные ассоциативные таблицы (карты памяти), превращая их в инструкции для cpu ?

21 мар. 2007 г.

прощай xdm !

Предпосылки:
  • Таскать *dm (со всеми зависимостями) ради login'а, после чего *dm весит в памяти, но эффективно ничего не выполняет
  • При каждом login'е в консоли надоело писать startx, тем более, если кто-то уже занял нулевую графическую консоль.
  • Необходимо обеспечить должную безопасность.

jni debug in eclipse

A little example Java Native Interface usage in java and debugging jni library within eclipse Java Development Toolkit & C/C++ Development Toolkit. I use eclipse 3.3M5 and CDT 4.0M5.

20 мар. 2007 г.