Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.04.2015, 18:38   #21
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Цитата:
Сообщение от Poma][a Посмотреть сообщение
Строка
Ну тогда особо то нет вариантов... такую строку перевести в число паскалю мозгов не хватит. В ручную пилить - уже явно не школьный уровень. Признак скажет только делимость на 3 или 9: 45 не является степенью тройки.
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 28.04.2015, 20:47   #22
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Цитата:
Сообщение от Poma][a Посмотреть сообщение
Потому что нужно проверить является ли число степенью 3-ки, а не правильным кубом..
тыц
Да, я ступил. Но это легко поправить. Вместо корня кубического вычислим логарифм по основанию три:
Код:
a:=ln(k) / ln(3)
Вадим Мошев вне форума Ответить с цитированием
Старый 28.04.2015, 21:12   #23
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Хм.. Если придумать быстрое деление (аля длинка, но не длинка ибо делим на определенное число)..
А вообще.. Всего чисел порядке 400-500.. Можно и развилками бахнуть

А давайте бахнем на 2? Как определить, является ли число (200 символов) степенью двойки?

Можно бахнуть n and (n-1).. Но тогда нам нужны байты.. А как их достать я пока не знаю

Ах да, делить нельзя (всмысле длинку)

Последний раз редактировалось Poma][a; 28.04.2015 в 21:17.
Poma][a вне форума Ответить с цитированием
Старый 28.04.2015, 21:41   #24
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Цитата:
Можно бахнуть n and (n-1)..
Вот это не понял...

Чем не нравится взятие логарифма?
Вадим Мошев вне форума Ответить с цитированием
Старый 28.04.2015, 21:43   #25
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
Чем не нравится взятие логарифма?
200 символов.. Будет большая погрешность
Цитата:
Вот это не понял...
Можно определить является ли число степенью двойки этой формулой. Если она = 1, то все прекрасно
Poma][a вне форума Ответить с цитированием
Старый 28.04.2015, 21:50   #26
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Цитата:
Можно определить является ли число степенью двойки этой формулой. Если она = 1, то все прекрасно
Ты хочешь выполнить побитовое И для последнего и предпоследнего байта числа (считая, что оно в двоичной СС)?
Вадим Мошев вне форума Ответить с цитированием
Старый 28.04.2015, 21:51   #27
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
Ты хочешь выполнить побитовое И для последнего и предпоследнего байта числа (считая, что оно в двоичной СС)?
Для всего числа
Poma][a вне форума Ответить с цитированием
Старый 28.04.2015, 21:58   #28
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Цитата:
Сообщение от Poma][a Посмотреть сообщение
Для всего числа
То есть, ты хочешь получить:
байт_0 И байт_1 И ... И Байт N?

Полагаю, что если число - степень двойки, ты ноль получишь, так как степень двойки в двоичном представлении представляет собой единицу с нули справа от неё...
Вадим Мошев вне форума Ответить с цитированием
Старый 28.04.2015, 22:04   #29
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
То есть, ты хочешь получить:
байт_0 И байт_1 И ... И Байт N?
Нет..
Цитата:
Полагаю, что если число - степень двойки, ты ноль получишь, так как степень двойки в двоичном представлении представляет собой единицу с нули справа от неё...
да!
Именно так..
2^n : 1000000000000000000..0000(2)
2^n-1 : 111111111111111111..1111(2)
Теперь бахаем and.
И если степень двойки, то получаем 0 (я выше наврал)
Poma][a вне форума Ответить с цитированием
Старый 28.04.2015, 22:18   #30
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Цитата:
Сообщение от Poma][a Посмотреть сообщение

Можно бахнуть n and (n-1).. Но тогда нам нужны байты.. А как их достать я пока не знаю
Ну тогда не байты, а биты (причём, не бейсбольные )
Я вот прицепился к слову и запутался...

А так метод хороший, но ИМХО, чтобы достать биты, нам всё равно надо крутить "длинку"
Вадим Мошев вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Школьный маразм grenles Свободное общение 52 23.09.2012 17:17
школьный журнал vi fail Паскаль, Turbo Pascal, PascalABC.NET 5 31.07.2012 00:20
Школьный журнал Галинка_Малинка Microsoft Office Access 1 21.05.2012 14:36
Школьный журнал Demares SQL, базы данных 3 19.03.2011 19:36
Школьный сайт... Fellics{новичок} Свободное общение 16 23.11.2009 21:01