Модераторы     Правила  
  Судовой журнал
  В помощь разработчику | Правила раздела
  Программистские голо...

Боцманы:  CTAKAH, cthulhu

 Страница   из 15    |  Показывать   на странице
Старые сначала  Тема: Программистские головоломки.
Grossmutters_G
Поручик



Сообщений: 1882

er_mac пишет:
ну ответ покажешь?

Твой код очень даже имеет место быть.

Просто есть сообрежение намного проще:

Итак, для того, чтобы двоичное число делилось на 15 нужно, чтобы сумма его разрядов, составленная так же, как и для определения делимости, например, на 3 десятичных чисел, представленных в 16-тиричном виде, была равна F. Причем, совершенно не обязательно хранить ведущие и завершающие нули.

Например, число 1FE (111111110) делится на 15. т.е. для наших нужд оно вообще представимо как FF (1FE>>2).

а)число 1EEE53 на 15 делиться не должно, потому, что:
1+E=F;
F+E = 1D = 1+D = E
E+E = 1C = 1+C = D
D+5 = 12 = 1+2 = 3
3+3 = 6
6 не равно F - не делится

б)Число 10007F16 должно:
1+0+0+0 = 1;
1+7 = 8;
8+F = 17 = 8;
8+1 = 9;
9+6 = F;
F = F - делится...

Проверка на калькуляторе:
а) не делится; б) делится...

Каюсь за такую скудную доказательную базу, но "оно работает!"© а далее реализация, как и для метода Евклида Чем элегантнее, тем краше
Т.е. код для некоторого числа может выглядеть примерно так:

bool isdivbyfifteen(ulong a){
ulong c = a & 0xFL;
ulong tmp = a>>4;
while (tmp>0){
c=c + tmp & 0xFL;
if(c>0xF)
   c = c & 0xF0L + c & 0xFL;
tmp>>4;
}
return (c==F)?true:false;
}
----------------------
"Было бы величайшей ошибкой думать...",-В.И.Ленин
15 Марта 2006 15:16      
Кот Матроскин
Бывший океанец
Сообщений: 9819459

Grossmutters_G пишет:
Твой код очень даже имеет место быть.

Просто есть сообрежение намного проще:

Итак, для того, чтобы двоичное число делилось на 15 нужно, чтобы сумма его разрядов, составленная так же, как и для определения делимости, например, на 3 десятичных чисел, представленных в 16-тиричном виде, была равна F. Причем, совершенно не обязательно хранить ведущие и завершающие нули.

Например, число 1FE (111111110) делится на 15. т.е. для наших нужд оно вообще представимо как FF (1FE>>2).

а)число 1EEE53 на ...


да, действительлно просто и красиво =)
15 Марта 2006 15:21      
Grossmutters_G
Поручик



Сообщений: 1882

И получается, что нам вообще не нужны строки на 10000 бит, а достаточно 1 байтного буфера, для того, чтобы обрабатывать все данные входного потока (ладно, допусти, 2, если онформация приходит в ЮНИКОД)
----------------------
"Было бы величайшей ошибкой думать...",-В.И.Ленин
15 Марта 2006 15:34      
Grossmutters_G
Поручик



Сообщений: 1882

Простая задача.

Представьте, что у вас есть код некоторого приложения, причем код этот у вас есть как на Java, так и на С++ для операционных систем Windows и Linux. Вашим навязчивым желанием является предотвращение запуска второй локальной копии скомпилированного из данного исходного кода приложения для любой из этих операционных систем. Вопросы:
1) что нужно добавить в исходники, при компилировании данного кода по Windows?
2) под Linux?
3) при выполнении данного кода в качестве Java-приложения?
----------------------
"Было бы величайшей ошибкой думать...",-В.И.Ленин
04 Апреля 2006 21:30      
neponjatnyj
Юнга
Сообщений: 16

Grossmutters_G пишет:
Простая задача.

Представьте, что у вас есть код некоторого приложения, причем код этот у вас есть как на Ява, так и на С++ для операционных систем Виндовс и Линух. Вашим навязчивым желанием является предотвращение запуска второй локальной копии скомпилированного из данного исходного кода приложения для любой из этих операционных систем. Вопросы:
1) что нужно добавить в исходники, при компилировании данного кода по Виндовс?
2) под Линух?
3) при выполнении данного кода в качестве Ява-приложения?


int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)

Проверь второй параметер!

Wie es in Java gemacht wird weiß ich nicht.
04 Апреля 2006 21:38      
Grossmutters_G
Поручик



Сообщений: 1882

neponjatnyj пишет:
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)

Проверь второй параметер!

Wie es in Java gemacht wird weiß ich nicht.

Ответом на задачу является совокупность ответов на все три пункта
----------------------
"Было бы величайшей ошибкой думать...",-В.И.Ленин
04 Апреля 2006 21:41      
Grossmutters_G
Поручик



Сообщений: 1882

neponjatnyj пишет:
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)

Проверь второй параметер!

Wie es in Java gemacht wird weiß ich nicht.

Причем, как утверждает сама Microsoft, проверка данного параметра вам ничего не даст Зато они отвечают на первый пункт
----------------------
"Было бы величайшей ошибкой думать...",-В.И.Ленин
04 Апреля 2006 21:43      
neponjatnyj
Юнга
Сообщений: 16

Grossmutters_G пишет:
Причем, как утверждает сама Мицрософт, проверка данного параметра вам ничего не даст Зато они отвечают на первый пункт


Ну так создай Mutex с именем приложения, а перед созданием проверь не существует ли он уже. По моему будет под всеми системами работать?!
04 Апреля 2006 21:53      
Grossmutters_G
Поручик



Сообщений: 1882

neponjatnyj пишет:
Ну так создай Mutex с именем приложения, а перед созданием проверь не существует ли он уже. По моему будет под всеми системами работать?!

Ну, для windows иненованные мьютексы - это стандартный вариант В linux тоже должно работать (как мне подсказывает здравый смысл).. А вот Java? (На два вопросо, будем считать, ты уже ответил... Только код не привел, а без кода - не хорошо)
----------------------
"Было бы величайшей ошибкой думать...",-В.И.Ленин
04 Апреля 2006 22:00      
neponjatnyj
Юнга
Сообщений: 16

Grossmutters_G пишет:
Ну, для виндовс иненованные мьютексы - это стандартный вариант В линух тоже должно работать (как мне подсказывает здравый смысл).. А вот Ява? (На два вопросо, будем считать, ты уже ответил... Только код не привел, а без кода - не хорошо)

Я конечно в Java не спец. но думаю там мьютексы тоже имеются, даже уверен. Мьютекс реалиzируется чрез ось, а значит должно работать! А с кодом тут уж ты студент сам работай
04 Апреля 2006 22:07      
Grossmutters_G
Поручик



Сообщений: 1882

neponjatnyj пишет:
Я конечно в Java не спец. но думаю там мьютексы тоже имеются, даже уверен. Мьютекс реалиzируется чрез ось, а значит должно работать! А с кодом тут уж ты студент сам работай

Нет, ты не понял.. Во-первых, на сколько я знаю, в Java нет мьютексов, т.е. явно не создашь системный объект - иначе, какая переносимость?! Во-вторых, я знаю Я тут просто задачки задаю От нечего делать, а кому интересно, те их решают Игра такая, просто же! А иногда и полезно
----------------------
"Было бы величайшей ошибкой думать...",-В.И.Ленин
04 Апреля 2006 22:11      
neponjatnyj
Юнга
Сообщений: 16

Grossmutters_G пишет:
Нет, ты не понял.. Во-первых, на сколько я знаю, в Ява нет мьютексов, т.е. явно не создашь системный объект - иначе, какая переносимость?! Во-вторых, я знаю Я тут просто задачки задаю От нечего делать, а кому интересно, те их решают Игра такая, просто же! А иногда и полезно


Ааа, ясненько! А ответы (когда) будут?
04 Апреля 2006 22:14      
Grossmutters_G
Поручик



Сообщений: 1882

neponjatnyj пишет:
Ааа, ясненько! А ответы (когда) будут?

Ну, когда не останется никого, кого бы заинтересовал ответ на данный вопрос Или дня через два
----------------------
"Было бы величайшей ошибкой думать...",-В.И.Ленин
04 Апреля 2006 22:16      
neponjatnyj
Юнга
Сообщений: 16

Grossmutters_G пишет:
Ну, когда не останется никого, кого бы заинтересовал ответ на данный вопрос Или дня через два


ладно, я спать. завтра опять целый день по клаве стучать вечером загляну
04 Апреля 2006 22:22      
Flammberg
Бывший океанец
Сообщений: 9819459

Практическая задачка.

Дано.

ХТМЛ-представление календаря в виде хтмл-таблицы 6Х7 (то есть, шесть строк-недель и семь столбцов-дней недели).

Задача.

Для заданных года и месяца написать как можно более быстрый и простой алгоритм заполнения календаря датами. При этом, «лишние клетки» должны быть заполнены пустой строкой.

Я написал все это дело на Ява-Скрипте, но, разумеется, отвечать можно с использованием любого приложения, был бы алгоритм понятен.
18 Апреля 2006 00:03      
Кот Матроскин
Бывший океанец
Сообщений: 9819459

простенькая задачка(скорее даже математическая)

построить алгоритм представления 16ричногл числа таким же 10ричным т.е. 0x12h = 12 = 0xCh, 0x45h = 45 = 0x2D и т.д.
27 Апреля 2006 01:01      
Goscha
Капитан 1го ранга



Сообщений: 6681

нада почтоши ящик всломать кто снает де софт всать
----------------------
У Герасима новая Собака,Водолаз.
28 Июня 2006 17:14      
sanekHH
Бывший океанец
Сообщений: 9819459

софт в гугле...за взлом до 2 лет лишения свободы!
какой яшик?
28 Июня 2006 18:02      
sanekHH
Бывший океанец
Сообщений: 9819459

вот тебе ЧАВО по взлому мыл

учись но не ломай
28 Июня 2006 18:10      
Goscha
Капитан 1го ранга



Сообщений: 6681

sanekHH пишет:
вот тебе ЧАВО по взлому мыл

учись но не ломай

пасибо
----------------------
У Герасима новая Собака,Водолаз.
29 Июня 2006 00:04      
 Страница   из 15    |  Показывать   на странице
Перейти в
© Stanislav Neuberger 2001-2K24 · Impressum · Служба поддержки