|
|
|
Нужна функция Sign без проверки условий09.07.2015, 15:11. Показов 4499. Ответов 40
Метки нет (Все метки)
0
|
|
| 09.07.2015, 15:11 | |
|
Ответы с готовыми решениями:
40
Вычислить Z=(sign(x)+sign(y))∙sign(x+y), где -функция определения знака числа, принимающая значение 1, если число а- положительное; -1, если число
Описать функцию Sign(X) целого типа, возвращающую для вещественного числа X следующие значения и найти значения выражения Sign(A) + Sign(B) |
|
240 / 218 / 46
Регистрация: 17.04.2010
Сообщений: 526
|
|||||||||||
| 11.07.2015, 17:44 | |||||||||||
Сообщение было отмечено castorsky как решение
Решение
Странная постановка задачи... Что значит "без проверки условий"?
Если под этим термином подразумевается проверка значения и переход в зависимости от результата, а задача стоит в отказе от джампа в качестве оптимизации, в таком случае данную функцию можно написать так:
3
|
|||||||||||
|
Модератор
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,898
|
|||||||
| 11.07.2015, 21:08 | |||||||
|
Добавлено через 14 минут Я предлагаю такой вариант (4 инструкции, не считая загрузки и выгрузки):
http://ideone.com/3TrXQE Перед тем как запускать, можно кликнуть edit, затем кликнуть input и ввести какое-нибудь число. Добавлено через 12 минут eax = eax + eax (при этом carry = 1 для отрицательных eax) ebx = ebx - ebx - carry == -carry eax = -eax (при этом carry = 1 для всех eax кроме 0) ebx = ebx +ebx + carry (-1 + -1 + 1 для отрицательных eax, 0 + 0 + 1 для положительных, 0 + 0 + 0 для нуля)
0
|
|||||||
|
240 / 218 / 46
Регистрация: 17.04.2010
Сообщений: 526
|
||
| 11.07.2015, 23:56 | ||
|
0
|
||
|
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
|
|
| 12.07.2015, 00:29 | |
|
0
|
|
|
Модератор
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,898
|
|||||||||||
| 12.07.2015, 02:34 | |||||||||||
|
Оказывается, там магия в строке:
0
|
|||||||||||
|
240 / 218 / 46
Регистрация: 17.04.2010
Сообщений: 526
|
|||||||
| 12.07.2015, 10:48 | |||||||
1
|
|||||||
|
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
|
||||||
| 12.07.2015, 12:29 | ||||||
|
Не по теме: Не понимаю зачем вы полезли в ассемблер Всё просто:
Добавлено через 2 минуты Согласно стандарту языка си сравнения дают результат 0 как ложь или 1 как истина. Других значений быть не может. А вот стандарта паскаля я не знаю.
1
|
||||||
|
Модератор
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,898
|
||||||||
| 12.07.2015, 12:39 | ||||||||
0
|
||||||||
|
|
|
| 12.07.2015, 16:42 [ТС] | |
|
проверять на 0 надо, потому что на 0 делить нельзя, а математика правил математики не знает.
возвращаясь к выражению, нужно в первую очередь определить x на линейке, для чего производится операция x+1 и в дальнейшем нужно привести всё это к следующему виду x=(x+1)/x, если результат больше входящих данных, то x положительный, если результат меньше входящих данных, то x отрицательный. но, похоже, это ёмко очень для компьютера. по крайней мере, ёмче обычных сравнений, пусть даже через while
0
|
|
|
240 / 218 / 46
Регистрация: 17.04.2010
Сообщений: 526
|
|||||
| 12.07.2015, 17:18 | |||||
![]() Вот мой первый ответ с примером реализации "кликать сюда", предлагаю найти 10 отличий.
1
|
|||||
|
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
|
||
| 12.07.2015, 19:51 | ||
|
0
|
||
|
240 / 218 / 46
Регистрация: 17.04.2010
Сообщений: 526
|
|
| 12.07.2015, 20:11 | |
|
castorsky, не собирался обидеть, просто ответ выглядит как "всё просто, а вы залезли в дебри", вероятно это я торможу...
0
|
|
|
|
||
| 13.07.2015, 17:13 [ТС] | ||
|
0
|
||
|
240 / 218 / 46
Регистрация: 17.04.2010
Сообщений: 526
|
|||||||||||||||
| 13.07.2015, 18:21 | |||||||||||||||
|
Пример:
0
|
|||||||||||||||
|
Модератор
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,898
|
|
| 13.07.2015, 19:14 | |
|
Условный переход принципиально отличается от логической операции. Условный переход означает ветвление "потока" исполнения кода. Процессор не может точно знать заранее, какую ветку кода нужно загрузить, а может только строить догадки. И если он ошибётся и загрузит не ту ветку, то "потеряет" несколько десятков тактов (будет простаивать, пока загружается нужная ветка).
Именно по этой причине придумывались алгоритмы для вычисления функций типа signum, max, abs и т.п. без условных переходов.
0
|
|
| 14.07.2015, 11:00 | |||||||
0
|
|||||||
|
|
|
| 14.07.2015, 15:00 [ТС] | |
|
Да, в общем, компилятор разрабатывали не нубы. Я всё равно программировать буду через циклы, массивы процедур, ну и Sign. Что могу сказать, пусть будет такая проверка условий, но, написание кода в такой манере будет вести меня к накоплению опыта и к систематизации. Условности я откидываю из учёта. Если я хочу создать свою систему и базу знаний (накопление опыта )быстро - я не должен брать в расчёт то, что является условным, так я эффективно достигну цели, а всё что условно - пыль. Пусть в Sign происходит проверка условий, но я не должен брать это в расчёт, пусть будут джампы, но это явление не физическое а архитектурное - значит я не должен это брать в расчёт.
В первую очередь - придерживаться физики, логика - это фаза физических процессов, и работает она, как ни крути, в рамках законов физики, а в законах физики никто ничего не проверяет. Да пусть будет цикл, но это не та проверка условий, пусть проверка условий - но не та система, как у человека.
0
|
|
|
Модератор
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,898
|
||||
| 14.07.2015, 15:03 | ||||
|
Во-первых, большинство приложений не настолько критичны к скорости исполнения. Во-вторых, современные процессоры используют довольно продвинутые алгоритмы предсказания и угадывают очень часто. "Древние" процессоры использовали самый примитивный алгоритм предсказания: предполагали, что условный переход никогда не выполнится. Именно поэтому указания likely/unlikely имели эффект. Современные процессоры используют динамические (времени исполнения) алгоритмы предсказания.
0
|
||||
| 15.07.2015, 08:33 | ||
) есть просто желание сачкануть и увильнуть от реальной работы - не более того
0
|
||
|
|
||||||
| 15.07.2015, 15:11 [ТС] | ||||||
|
Не знаю, кажется на первый взгляд быстро, если:
псевдокод
Что скажут критики?
0
|
||||||
| 15.07.2015, 15:11 | |
|
Функция проверки числа на деление без остатка на другое число Функция Sign Нужна функция проверки вводимых данных в Access (БД "салон красоты") Проверки различных условий Функция sign (линейный входной сигнал) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Теория всего 12. ВГК
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики
1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
|
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928
Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
|
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего
Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
|
Теория всего 10. Клод трусишка
anaschu 21.07.2026
Алгоритмический суицид ИИ: Когда математика ОДУ взламывает цензурные шлюзы
Свежайший мета-прецедент нашей разработки! Клод официально отказался строить итоговую кроссплатформенную модель, как. . .
|
|
Теория всего 9. Окончательная проработка метафоры "дерево = традиции"
anaschu 21.07.2026
Скрытые параметры ядра ОДУ: Механика Глубинного Рока
Клод утаил от вас ключевую математику кризисов. В движке игры зашиты пять скрытых коэффициентов, определяющих, как именно ТНК и Мемы ломают. . .
|
Теория всего 8. Clauude трусишка. Ответ джемени
anaschu 21.07.2026
Игровой баланс «Модели Всего»: Алгоритмический блок как механика Семантического БуфераЭтот скриншот отказа Клода — идеальный, чистейший прецедент для нашей Теории Всего. Вы столкнулись не просто с. . .
|
Теория всего 7. Дерево - это патриархат, грибы - это феминизм
anaschu 21.07.2026
Уничтожение Патриархата: Как ТНК, Мемы и Половой отбор зачистили «Сексуальный Пролетариат»
Величайшая иллюзия современного человека — вера в «свободу воли», «социальный прогресс» и «эволюцию. . .
|
История и социология Терры на примере борьбы микориз за пространство. 1. Глоссарий терры.
anaschu 21.07.2026
Решил тут подумать о возможности сделать лор некоторой комп игры - стратегии, или худжественной книги антиутопии, которые будут юзать планету,которая максимально будет похожа на нашу землю, но где. . .
|