Pull to refresh

Автограммы

Reading time3 min
Views4.8K
В связи с тем, что моя первая статья, Мультиязыковые квайны, похоже, понравилась коллегам-программистам, хочу продолжить и написать ещё несколько статей про всякие автореферентные штуки. Меня всегда поражала автореферентность — рекурсия, фракталы, квайны, человеческое самосознание… Сейчас я начну разглагольствовать и мне совершенно справедливо накидают чего-нибудь нехорошего в карму. Я лучше посоветую прочитать «Гёдель Эшер Бах» Хофштадтера тем, кто ещё не читал. Это гениальная книга и гимн автореферентности. А теперь к делу.

Автограммы.

Пока программисты пишут квайны на разных языках, те, кто программирование ещё по каким-либо причинам не освоил, могут заняться не менее интересным и довольно таки похожим делом — сочинением автограмм.
Автограммы — это предложения на естественном языке, описывающие собственную внутреннюю структуру.
Читать дальше →
Total votes 26: ↑25 and ↓1+24
Comments15

Мини-задачка: «олд-скульное» дерево

Reading time3 min
Views1.8K

Постановка задачи



Буквально несколько дней назад Eric Lippert на своем блоге Fabulous Adventures In Coding опубликовал очень простую, но занимательную задачку:

Есть дерево, заданное с помощью класса Node, в котором есть Children с теми же самыми Node и какой-то Text (чуть ниже приведу код класса). Необходимо сгенерировать строку такого вида (включая переносы строк):
Использовать нужно юникодовые символы "│ ├ ─ └" (вспомним старые добрые картинки с псевдографикой). Цель, которую поставил себе Эрик — выяснить, какие предпочтения будут сделаны при составлении решения: рекурсивное (так как дерево), более быстрое или более читабельное.
Читать дальше →
Total votes 36: ↑28 and ↓8+20
Comments21

C#: Этюды, часть 7

Reading time1 min
Views1.8K
Сегодня простой этюд, почти без кода.

Допустим, есть некий класс и его статический конструктор:
static C()
{ Console.WriteLine("from static ctor"); }

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

В общем, все очень сложно. Тем не менее, напишите код, который гарантированно вызывает указанный выше статический конструктор как раз в нужном месте.

Console.WriteLine("before static ctor");
// нужно вызвать здесь
Console.WriteLine("after static ctor");
Total votes 32: ↑22 and ↓10+12
Comments60

Трёхмерны ли вы? Микрозадачка пространственному мышлению

Reading time3 min
Views56K
Развлекитесь: три одинаковых цилиндра, длиной больше диаметра, взаимно перпендикулярно пересекаются своими осями в одной точке.

То же другими словами: оси координат сделали толстыми-толстыми, круглыми:

задача

?: не пользуясь софтом и справочниками — нарисовать от руки или кратко описать словами форму области пересечения (скрыта шаром на рис. выше).


Очевидно, что никаких дополнительных знаний или тренируемых навыков для ответа не требуется — если человек понимает слова «цилиндр» и «перпендикуляр» — этого достаточно.
разбить хрустальный шар и отсечь лишнее
Total votes 67: ↑54 and ↓13+41
Comments55

Задача Танежи или проблема числа 10958…

Reading time7 min
Views33K
В работе Индера Танежа (Inder J. Taneja) (бразильского математика-популяризатора математики) от 2014 года: Crazy Sequential Representation: Numbers from 0 to 11111 in terms of Increasing and Decreasing Orders of 1 to 9 (Сумасшедшее последовательное представление: числа от 0 до 11111 в порядке возрастания и убывания от 1 до 9).
Был один пробел, а именно число 10958, который немного всколыхнул научное сообщество, и самое главное до сих пор не заполнен. Вот про него мы и поговорим.


Total votes 16: ↑14 and ↓2+12
Comments26

Анимация волновой функции частицы Шрёдингера (ψ) с помощью Python (с полным кодом)

Reading time5 min
Views7.5K

Двойственная природа материи — широко известное понятие среди физиков. Вещество на атомном уровне в некоторых случаях ведёт себя как частицы, а в некоторых — как волны. Чтобы объяснить это, мы вводим волновую функцию частицы ψ(x, t), которая описывает не фактическое положение частицы, а вероятность нахождения частицы в данной точке. Волновая функция ψ(x, t), или поле вероятностей, которое удовлетворяет, возможно, самому важному уравнению в частных производных, по крайней мере для физиков, является уравнением Шрёдингера.

Приятного чтения
Total votes 11: ↑7 and ↓4+3
Comments6

Ещё одна школьная задачка: про безопасный секс…

Reading time1 min
Views2.2K
Условия простые и жизненные: хабрачеловек хочет заняться сексом по очереди с 3 девушками, но есть всего 2 презерватива. Как всё сделать так, чтобы, не только он, но и девушки не могли подцепить венерических заболеваний друг от друга?

Кто знал задачу раньше, просьба не писать ответ.
Задача на логику, решение необычное, не пытайтесь повторить его у себя дома!
upd: Snart отгадал, но возник спор порвётся ли второй презерватив
Total votes 32: ↑9 and ↓23-14
Comments34

Задача номер 36 из учебника второго класса

Reading time1 min
Views1.9K
Сисадмин пришёл из дома и парализовал офис на полчаса. (Сам-то он ещё дома решил эту задачку для дочки)

Задачка

Поставьте циферки и картиночку вместо вопросительных знаков.

Второкласники знают сложение, вычитание и деление.
Total votes 39: ↑21 and ↓18+3
Comments43

Задачка! у кого какие мысли…

Reading time1 min
Views454
Задачка короче:
Есть 10 монет одинаковых с виду… но одна из них отличается по весу (либо тяжелее либо легче незнаем)
нужно найти эту монету, но ты можеш положить монеты на весы только 3 раза…

как решить?:)
Total votes 3: ↑0 and ↓3-3
Comments3

Задачка о самолёте

Reading time1 min
Views1K
Сам эту задачку видел на каком-то из форумов года 4 назад. Обсуждающие к единому мнению не пришли.
Представьте себе ситуацию. Есть самолёт и взлётная полоса с неким покрытием, которое движется в обратную сторону движения самолёта. Скорости движения самолёта при разгоне и движущейся дорожки всегда одинаковы. Получается, что самолёт как-бы стоит на месте, поскольку дорожка движется с идентичной скоростью, но в обратном направлении.
Читать дальше →
Total votes 1: ↑1 and ↓0+1
Comments4

Занимательная задачка со штрих кодами(только для тех кто хочет помочь)

Reading time1 min
Views946

И так. Нужно создать копию программы создающей штрих коды.
Но программа эта какая–то странная. Если на вход ей скормить 2х, 3х значное число — она выдает валидный 128–В штрих–код
Но если скармливать 4х-значные числа то она выдает не не понятно что.
А именно «начальный символ|символ code C|2 символа коды которых образуются из 2х пар чисел|Контрольный символ|конечный символ»
Моя проблема состоит в том что я не пойму как образуется этот контрольный символ, точнее его код. 2 дня мучаюсь, а сроки горят. Если вы не разбираетесь в штрих кодах — то задача следующая:
я приведу несколько данных — первый столбик входящее число, второй его контрольныя сумма

2184 85
2185 88
2186 91

1550 74
1551 77

2000 37
2001 40

Из этого видно что при увеличении числа на 1, контрольная сумма увеличивается на 3
Еще есть аски-коды пары цифр увеличиваются на 32, т.е. 2184 выводится как chr(21+32)chr(84+32)
аски-код «code C» — 199, возможно он тоже как–то в этом участвует.
Очень надеюсь на помощь.
UPD гуглом пользоваться умею!!! Тут не стандартная ситуация.
Total votes 16: ↑14 and ↓2+12
Comments14

Куда делся рубль?…

Reading time1 min
Views4.7K
Вот представь…
Я у тя взял 10 рублей.
Пошел в магазин и потерял их.
Встретил друга.
Взял у него 5 рублей.
Купил 2 сигареты по 1 руб.
У меня осталось 3 руб.
Я их отдал тебе.
И остался должен 7.
И другу 5.
Итого 12.
Плюс у меня 2 сигареты.
Итого 14.
Куда делся рубль?!!
Total votes 2: ↑2 and ↓0+2
Comments37

Задачка "Hello World"

Reading time1 min
Views6.7K
Итак, вопрос знатокам: Сколько раз на экране появится заветная фраза при выполнении этой программы?

#include <iostream>
int main(int argc, char* argv[])
{
   int i = 10;
   std::cout<<"Hello World!"<<std::endl;
   // Сколько раз???
   while(i--)
   {
      // Сколько раз будет вызвана эта строка???/
      for(int j=0; j<10; j++)
         std::cout<<"Hello World!"<<std::endl;
   }
   return 0;
}
Читать дальше →
Total votes 129: ↑101 and ↓28+73
Comments183

Задачка

Reading time1 min
Views521
Увидев «визуальную загадку», вспомнил, что с ней довалась ещё одна очень интересная задачка.
Продолжить последовательность с обеих сторон:
5 9 26 53 58 9 79

Задачка лёгкая, но догадаться трудно )

В комментариях уже есть решение!
Total votes 13: ↑7 and ↓6+1
Comments10

Родилась задачка

Reading time1 min
Views1.1K
Возникла у меня одна задумка, которая может мне приятно облегчить программирование некоторых штук (в реальном проекте).
Но будет ли это работать, я не знал. В результате чего я накидал маленький тест чтобы проверить свои догадки.
После написания этого теста, обнаружил, что этот примерчик может быть вполне интересной и познавательной java-задачкой.
Вот такая задачка получилась
Total votes 7: ↑5 and ↓2+3
Comments17

Как поделить пирог чтобы все остались довольны

Reading time2 min
Views2.7K
Есть задача — разделить некое целое между несколькими претендентами и чтобы при этом каждый остался доволен. Причём разделить в реальных бытовых условиях — пирог, например — с линейкой и циркулем вокруг него не сильно удобно бегать, да и целое бывает неоднородным.

На двоих


Первый делит, второй выбирает. Соответственно, первый старается поделить поровнее, чтобы впоследствии порадоваться любой доставшейся доле.

Философская идея


Почему не остаётся недовольных? Потому что каждый обладает всей полнотой выбора, при этом — о чудо — не притесняя соседей. Почти 200% свободы :-) С решением внешнего судьи — выбранного человека или судьбы при жеребьёвке — всегда могут несогласиться (хотя бы внутренне), здесь же каждый участвует в вершении своей судьбы потому что что-то делает, а не только принимает чужой вердикт.

Альтернативные решения и подобные задачи приветствуются.

На троих (уже посложнее)


Читать дальше →
Total votes 31: ↑27 and ↓4+23
Comments28

«Детская» задачка для программистов

Reading time2 min
Views3.5K
В процессе разработки наших программных продуктов перед нами часто встают задачи для решения которых требуются глубокие знания языка C++, принципов работы компиляторов и процессоров.

Нашей компании нужны программисты, которые умеют решать подобные задачи.

Например одна из таких задач: не компилируя этот код (очень важно решить ее в голове) скажите сработает ли когда-нибудь вывод «BINGO»?
Читать дальше →
Total votes 39: ↑25 and ↓14+11
Comments118

Неочевидная особенность в синтаксисе определения переменных

Reading time3 min
Views6.4K
Предлагается совершенно невинный на вид кусок кода на C++. Здесь нет ни шаблонов, ни виртуальных функций, ни наследования, но создатели этого чудесного языка спрятали грабли посреди чистa поля.

struct A {
  A (int i) {}
};

struct B {
  B (A a) {}
};

int main () {
  int i = 1;
  B b(A(i)); // (1)
  return 0;
}


* This source code was highlighted with Source Code Highlighter.


Вопрос: какой тип у переменной b? Совсем не тот, который можно было бы предположить на первый взгляд.

Ответ под катом
Total votes 87: ↑75 and ↓12+63
Comments70
1