DioD
offline
Опыт:
45,134Активность: |
Ну я хз, если не нравиться то предложите свою задачу.
Вот раз зашла речь о рационализации, вот как бы ты выполнил заполнение массива от 8189 до 1 наиболее рационально? |
10.03.2007, 21:25 | #21
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,447Активность: |
|
10.03.2007, 21:26 | #22
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
p01nTT
offline
Опыт:
11,160Активность: |
Цитата:
я кстати тож :) |
|
10.03.2007, 21:54 | #23
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
108,439Активность: |
Собственно вот вариант кода, который я выкладывал ранее, все проверял, все прекрасно пашет:
Код:
|
10.03.2007, 22:35 | #24
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
108,439Активность: |
Ы? Ужо все? ладно... DioD, в след раз плз обьясняй подробно что надо сделать=)
|
11.03.2007, 09:20 | #25
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,134Активность: |
нетрат почему-то сразу понял что надо сделать |
11.03.2007, 09:35 | #26
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NETRAT
offline
Опыт:
83,712Активность: |
ну я же типа программист почти что дипломированный...
мне вообще нравятся задачи которые дает Алексей, по архитектуре процессора, но это достаточно сложно и вряд ли кто будет этим заниматься. думаю, что лучшим вариантом в этом случае будет задача оптимизации кода или оптимальной реализации алгоритма (сортировки не рассматривать) NETRAT добавил: Прикладная сишная задача, описанная в жасссе: Напишите код эквивалентный Код:
Подсказка 1: Решение записывается в одну строчку. Подсказка 2: Функция определяет четность числа. На мой взгляд, решение просто элементарно... Возможно имеет смысл тем кто знает решение, писать его под тегами admin?! |
12.03.2007, 00:10 | #27
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Iron
Листовой
offline
Опыт:
24,427Активность: |
Ну я подозреваю что имеет место быть return ((ModuloInteger(A,2)-1)*(ModuloInteger(A,2)-1)) Так? Ну это приминительно к возможностям именно jass-a |
12.03.2007, 01:01 | #28
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NETRAT
offline
Опыт:
83,712Активность: |
Вариант неплохой, но, очевидно, не лучший, запросто можно обойтись без квадрата, который в твоем случае доставляет неоптимальность из-за двойного использования функции Modulo
NETRAT добавил: мда, даже у меня в неоптимальном виде это всего одна функция |
12.03.2007, 02:08 | #29
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Iron
Листовой
offline
Опыт:
24,427Активность: |
Блин, все ж примитивно, а я как лох фигню спорол. Воть: return ModuloInteger(A-1,2) |
12.03.2007, 02:27 | #30
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,134Активность: |
function X2 takes integer A returns integer
return ModuloInteger(A,2) != 0 return 0 endfunction админ таг это излишне, тема предназнаячена для обучения. DioD добавил: да, с буквами у меня плохо, если возращает ноль вместо еденицы достаточно переставить "!=" на "==" . а если честно я не понял вообще что надо сделать |
12.03.2007, 07:55 | #31
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Iron
Листовой
offline
Опыт:
24,427Активность: |
DioD, короч так. Разьясню, функция ModuloInteger это функция получения остатка от деления, т.е. ModuloInteger(A,2) - остаток от деления А на 2. При этом число А четное если остаток равен 0, и наша функция должна вернуть 1, а если нечетное то остаток - 1, а функция должна вернуть 0.
Все делается простым прибавлением или вычитанием из А+1 или А-1. |
12.03.2007, 10:02 | #32
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,134Активность: |
ну я например без прибавления это сделал... |
12.03.2007, 10:20 | #33
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
p01nTT
offline
Опыт:
11,160Активность: |
DioD Диод а разве True при переводе в интежер РБом не 64 возвращает?
|
12.03.2007, 10:24 | #34
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,134Активность: |
тру это 1 фолс это 0, вообще бул это тот же интегер, через рестор юнит можно без ретур бага писать в переменные другой тип |
12.03.2007, 10:56 | #35
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NETRAT
offline
Опыт:
83,712Активность: |
ну, я сказал что это сишная задача и выглядит достаточно примитивно, хотя имеет важное значение.
Усложним задачу Код:
DioD не думаю что дополнительная функция - лучшее решение кстати, в теории программирования считается что int(true) это неизвестно что, отличное от нуля NETRAT добавил: Iron лучше A+1 ибо для меня не очевидно что будет в ModuloInteger(<0) |
12.03.2007, 12:54 | #36
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
dk
offline
Опыт:
60,293Активность: |
Ну например используя прошлую задачу: return ModuloInteger(A+1,2)*2 - 1 |
12.03.2007, 13:30 | #37
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Toadcop
offline
Опыт:
54,313Активность: |
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 установки переменой значения это просто между делам т.е. если у НТ к это лок перемменая то мой вариант очень не плохой... |
|
12.03.2007, 13:50 | #38
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,447Активность: |
Цитата:
принцепи важно не это.. т.к. все писали чисто по памяти, и не пользовались компелятором (по крайне мере я) хм.. неуспел... на задачу нт, дк уже ответил... Цитата:
ModuloInteger( A*4+1 , 4) , функция возвратит остаток которого нехвотает до наименьшего кратного (т.е. то значение которого нехвотает до "A*4") - "1" ModuloInteger( -(A*4+1), 4) , функция возвратит остаток которого нехватает до большего кратного (т.е. то значение которого нехвотает до "A*4+4") - "3" |
||
12.03.2007, 15:25 | #39
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NETRAT
offline
Опыт:
83,712Активность: |
Toadcop нет, не быстрее, и я уже не раз обьяснял почему сумма/разность работает быстрее оператора условного перехода. По поводу локалки - верно
Dead_knight угу, задачо на сообразительность... Jon че-то я не вьехал в последние строки... |
12.03.2007, 22:53 | #40
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|