|
|
|
Нужна функция Sign без проверки условий09.07.2015, 15:11. Показов 4492. Ответов 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 (линейный входной сигнал) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Установка нескольких штампов электронной подписи в строго определенных местах файла docx
ВладимирСамохин 19.07.2026
(В!) Работа с Электронной подписью - это неотъемлемая часть современного документооборота. Но что делать, если нужно поставить несколько штампов электронной подписи в строго определенных местах. . .
|
сукцессия 35. Научная статья о проделанной работе
anaschu 19.07.2026
Написал в формате латекс и пдф
|
Вангую, что это не пройдёт модерацию, и на неделе я запущу свой сервер.
Hrethgir 19.07.2026
Эта публикация сейчас в песочнице и ждёт приглашения.
https:/ / habr. com/ ru/ sandbox/ 295048/
начало и оглавление
-
Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование. . .
|
сукцессия 33. открытые вопросы от клауде
anaschu 19.07.2026
"Что накопилось за эту часть А — тринадцать правок, из которых шесть пришли из ваших вопросов и каждая оказалась реальной ошибкой, а не калибровкой: односторонний симбиоз, отсутствующий листопад,. . .
|
|
32 сукцессия
anaschu 19.07.2026
сукцессия 28‑мерное ядро стабилизировано
Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не «подкручивает» сходимость —. . .
|
сукцессия 31: модель микоризы - это модель ещё нескольких явлений, социальных и экономических
anaschu 18.07.2026
Теория «Всего»: апдейт v1. 1. 2 — 28‑мерное ядро стабилизировано
Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не. . .
|
сукцессия 30. Массив проверяющих друг друга моделей
anaschu 18.07.2026
Архитектура сети взаимопроверяющих моделей микоризной сукцессии (v2. 0)
Развитие тензорного ОДУ-ядра и создание кросс-платформенного калибровочного полигона
Уважаемые коллеги!
В продолжение. . .
|
Грибы - это женщины, деревья - это мужчины. Анти инь янь для союза мужчины и женщины.
anaschu 18.07.2026
ГЛАВНЫЙ НАУЧНО-ФИЛОСОФСКИЙ ВЫВОД: Сексуально-Репродуктивный Капитализм против Государства Моногамии
Коллеги, мы вышли на финишную прямую 20-мерного ОДУ-моделирования вековой сукцессии (ветка. . .
|