![]()
DioD
![]() ![]() offline
Опыт:
45,184Активность: |
Ну я хз, если не нравиться то предложите свою задачу.
Вот раз зашла речь о рационализации, вот как бы ты выполнил заполнение массива от 8189 до 1 наиболее рационально? |
![]() |
#21
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
J
expert
![]() offline
Опыт:
47,997Активность: |
|
![]() |
#22
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
p01nTT
![]() offline
Опыт:
10,760Активность: |
Цитата:
я кстати тож :) |
|
![]() |
#23
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
adic3x
![]() offline
Опыт:
99,989Активность: |
Собственно вот вариант кода, который я выкладывал ранее, все проверял, все прекрасно пашет:
Код:
|
![]() |
#24
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
adic3x
![]() offline
Опыт:
99,989Активность: |
Ы? Ужо все? ладно... DioD, в след раз плз обьясняй подробно что надо сделать=)
|
![]() |
#25
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
DioD
![]() ![]() offline
Опыт:
45,184Активность: |
нетрат почему-то сразу понял что надо сделать |
![]() |
#26
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
NETRAT
![]() ![]() offline
Опыт:
82,062Активность: |
ну я же типа программист почти что дипломированный...
мне вообще нравятся задачи которые дает Алексей, по архитектуре процессора, но это достаточно сложно и вряд ли кто будет этим заниматься. думаю, что лучшим вариантом в этом случае будет задача оптимизации кода или оптимальной реализации алгоритма (сортировки не рассматривать) NETRAT добавил: Прикладная сишная задача, описанная в жасссе: Напишите код эквивалентный Код:
Подсказка 1: Решение записывается в одну строчку. Подсказка 2: Функция определяет четность числа. На мой взгляд, решение просто элементарно... Возможно имеет смысл тем кто знает решение, писать его под тегами admin?! |
![]() |
#27
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Iron
Листовой
![]() ![]() offline
Опыт:
23,587Активность: |
Ну я подозреваю что имеет место быть return ((ModuloInteger(A,2)-1)*(ModuloInteger(A,2)-1)) Так? Ну это приминительно к возможностям именно jass-a |
![]() |
#28
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
NETRAT
![]() ![]() offline
Опыт:
82,062Активность: |
Вариант неплохой, но, очевидно, не лучший, запросто можно обойтись без квадрата, который в твоем случае доставляет неоптимальность из-за двойного использования функции Modulo
NETRAT добавил: мда, даже у меня в неоптимальном виде это всего одна функция |
![]() |
#29
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Iron
Листовой
![]() ![]() offline
Опыт:
23,587Активность: |
Блин, все ж примитивно, а я как лох фигню спорол. Воть: return ModuloInteger(A-1,2) |
![]() |
#30
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
DioD
![]() ![]() offline
Опыт:
45,184Активность: |
function X2 takes integer A returns integer
return ModuloInteger(A,2) != 0 return 0 endfunction админ таг это излишне, тема предназнаячена для обучения. DioD добавил: да, с буквами у меня плохо, если возращает ноль вместо еденицы достаточно переставить "!=" на "==" . а если честно я не понял вообще что надо сделать |
![]() |
#31
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Iron
Листовой
![]() ![]() offline
Опыт:
23,587Активность: |
DioD, короч так. Разьясню, функция ModuloInteger это функция получения остатка от деления, т.е. ModuloInteger(A,2) - остаток от деления А на 2. При этом число А четное если остаток равен 0, и наша функция должна вернуть 1, а если нечетное то остаток - 1, а функция должна вернуть 0.
Все делается простым прибавлением или вычитанием из А+1 или А-1. |
![]() |
#32
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
DioD
![]() ![]() offline
Опыт:
45,184Активность: |
ну я например без прибавления это сделал... |
![]() |
#33
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
p01nTT
![]() offline
Опыт:
10,760Активность: |
DioD Диод а разве True при переводе в интежер РБом не 64 возвращает?
|
![]() |
#34
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
DioD
![]() ![]() offline
Опыт:
45,184Активность: |
тру это 1 фолс это 0, вообще бул это тот же интегер, через рестор юнит можно без ретур бага писать в переменные другой тип |
![]() |
#35
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
NETRAT
![]() ![]() offline
Опыт:
82,062Активность: |
ну, я сказал что это сишная задача и выглядит достаточно примитивно, хотя имеет важное значение.
Усложним задачу Код:
DioD не думаю что дополнительная функция - лучшее решение кстати, в теории программирования считается что int(true) это неизвестно что, отличное от нуля NETRAT добавил: Iron лучше A+1 ибо для меня не очевидно что будет в ModuloInteger(<0) |
![]() |
#36
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
dk
![]() offline
Опыт:
60,993Активность: |
Ну например используя прошлую задачу: return ModuloInteger(A+1,2)*2 - 1 |
![]() |
#37
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Toadcop
![]() ![]() offline
Опыт:
52,713Активность: |
ZzZ takes nothing returns nothing
local integer array ZzZ set ZzZ[0 функция ZzZ & variable ZzZ ? компилятор не ругаетьса ?! Toadcop добавил: Цитата:
if ModuloInteger(A,2) == 0 then return 1 else return 0 endif это еще лутче ! но относительно... кстати инциализация лок переменных занимает 3-4 установки переменой значения это просто между делам т.е. если у НТ к это лок перемменая то мой вариант очень не плохой... |
|
![]() |
#38
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
J
expert
![]() offline
Опыт:
47,997Активность: |
Цитата:
принцепи важно не это.. т.к. все писали чисто по памяти, и не пользовались компелятором (по крайне мере я ![]() хм.. неуспел... на задачу нт, дк уже ответил... Цитата:
ModuloInteger( A*4+1 , 4) , функция возвратит остаток которого нехвотает до наименьшего кратного (т.е. то значение которого нехвотает до "A*4") - "1" ModuloInteger( -(A*4+1), 4) , функция возвратит остаток которого нехватает до большего кратного (т.е. то значение которого нехвотает до "A*4+4") - "3" |
||
![]() |
#39
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
NETRAT
![]() ![]() offline
Опыт:
82,062Активность: |
Toadcop нет, не быстрее, и я уже не раз обьяснял почему сумма/разность работает быстрее оператора условного перехода. По поводу локалки - верно
Dead_knight угу, задачо на сообразительность... Jon че-то я не вьехал в последние строки... |
![]() |
#40
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|