|
|
|
Нужна функция Sign без проверки условий09.07.2015, 15:11. Показов 4097. Ответов 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
|
|||||||||||
|
Модератор
3133 / 2280 / 469
Регистрация: 26.03.2015
Сообщений: 8,874
|
|||||||
| 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
|
|
|
Модератор
3133 / 2280 / 469
Регистрация: 26.03.2015
Сообщений: 8,874
|
|||||||||||
| 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
|
||||||
|
Модератор
3133 / 2280 / 469
Регистрация: 26.03.2015
Сообщений: 8,874
|
||||||||
| 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
|
|||||||||||||||
|
Модератор
3133 / 2280 / 469
Регистрация: 26.03.2015
Сообщений: 8,874
|
|
| 13.07.2015, 19:14 | |
|
Условный переход принципиально отличается от логической операции. Условный переход означает ветвление "потока" исполнения кода. Процессор не может точно знать заранее, какую ветку кода нужно загрузить, а может только строить догадки. И если он ошибётся и загрузит не ту ветку, то "потеряет" несколько десятков тактов (будет простаивать, пока загружается нужная ветка).
Именно по этой причине придумывались алгоритмы для вычисления функций типа signum, max, abs и т.п. без условных переходов.
0
|
|
| 14.07.2015, 11:00 | |||||||
0
|
|||||||
|
|
|
| 14.07.2015, 15:00 [ТС] | |
|
Да, в общем, компилятор разрабатывали не нубы. Я всё равно программировать буду через циклы, массивы процедур, ну и Sign. Что могу сказать, пусть будет такая проверка условий, но, написание кода в такой манере будет вести меня к накоплению опыта и к систематизации. Условности я откидываю из учёта. Если я хочу создать свою систему и базу знаний (накопление опыта )быстро - я не должен брать в расчёт то, что является условным, так я эффективно достигну цели, а всё что условно - пыль. Пусть в Sign происходит проверка условий, но я не должен брать это в расчёт, пусть будут джампы, но это явление не физическое а архитектурное - значит я не должен это брать в расчёт.
В первую очередь - придерживаться физики, логика - это фаза физических процессов, и работает она, как ни крути, в рамках законов физики, а в законах физики никто ничего не проверяет. Да пусть будет цикл, но это не та проверка условий, пусть проверка условий - но не та система, как у человека.
0
|
|
|
Модератор
3133 / 2280 / 469
Регистрация: 26.03.2015
Сообщений: 8,874
|
||||
| 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 | |
|
Помогаю со студенческими работами здесь
40
Функция проверки числа на деление без остатка на другое число Функция Sign Нужна функция проверки вводимых данных в Access (БД "салон красоты") Проверки различных условий Функция sign (линейный входной сигнал) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|