[Off] Desafio mais foda que vocк tentarб hoje ..
#1

Desafio de lуgica, duvido que algum "gкnio" aqui da бrea consiga resolver. Eu levei cerca de 2 horas. Mas consegui



Faзa uma condicional igual a esta:



caso o cara for admin, imprimir todos itens
caso o nao for admin, imprimir todos menos o item 5


apenas usando APENAS operadores bitwise tudo em uma ЪNICA condiзгo

http://pt.wikipedia.org/wiki/Porta_l%C3%B3gica


Exemplo sem bitwise:
PHP Code:
if( admin || item != 5)) 
caso for admin, imprimir. Caso nгo for admin e o item for diferente de 5 imrimir.


farб o seguinte

1
2
3
4
5
6
7
8
9
10

caso for admin, caso nгo for

1
2
3
4
6
7
8
9
10



Й bastante dificil, nгo hб nenhum porta lуgica para "simular" o || (ou). Vocк terб que imendar dois operadores para fazer uma condiзгo.

Em breve posto resultado.
Reply
#2

Na verdade й bastante simples, sу que requer que vocк monte um planejamento em papel caso vocк nгo tenha muito costume com portas lуgicas.

Eu fiz um simples aqui que ficou bem funcional, quem entende de sistemas lуgicos vai sacar logo.

Eu liguei o Admin ao VCC(pra obter exatas duas entradas) na porta AND, e mandei a saнda da mesma para a porta OR, nessa porta OR eu dei entrada com a saнda de outra porta AND que verifica Admin barrado e barrei o Item tambйm caso seja 5...

Ou seja, se o admin for 1, ele vai imprimir todos.
Se for 0, vou barrar o admin pra ser 1, e vou barrar o Item quando o mesmo for igual a 5, ai a condiзгo fica falsa e nгo imprime o valor.

Reply
#3

Boa Luigi, aqui estб meu mйtodo

pawn Code:
if((!((item ^ 5)) ^ !(!((item ^ 5)) & !((admin ^ 1)))))

pode colocar o teu tambйm, pela lуgica ficou melhor

Abraзos
Reply
#4

pawn Code:
if ( ( (admin & 1) | ( (admin ^ 7) & (item ^ 5) ) ) )
Reply
#5

Aguardando outra pessoa responder o desafio. Por enquanto o campeгo й o Will
Reply
#6

demorei uns 40 minutos
nunca usei operadores bitwise, mas jб conhecia

a minha tecnica foia a seguinte

pawn Code:
if( (admin & 1) | (i ^ 5) )
passo a passo agora
1 - quando nao for admin (admin & 1) o operador AND ( 0 & 1 ) resultarб em 0
2 - com o operador XOR quando dois numero forem iguais resulta em 0
3 - com o operador OR, 0 e 0 й 0
portanto da forma que eu fiz enquanto nao for 0 vai imprimir, quando for nao imprime!
Reply
#7

Quote:
Originally Posted by DartakousLien
View Post
demorei uns 40 minutos
nunca usei operadores bitwise, mas jб conhecia

a minha tecnica foia a seguinte

pawn Code:
if( (admin & 1) | (i ^ 5) )
passo a passo agora
1 - quando nao for admin (admin & 1) o operador AND ( 0 & 1 ) resultarб em 0
2 - com o operador XOR quando dois numero forem iguais resulta em 0
3 - com o operador OR, 0 e 0 й 0
portanto da forma que eu fiz em quanto nao for 0 vai imprimir, quando for nao imprime!
Cк usou a mesma lуgica que eu, nгo vale, a diferenзa й que eu botei uma porta a mais pra garantir que o admin nгo seria 1.

Bacana, ficou bem mais simples.
Reply
#8

Quote:
Originally Posted by DartakousLien
View Post
demorei uns 40 minutos
nunca usei operadores bitwise, mas jб conhecia

a minha tecnica foia a seguinte

pawn Code:
if( (admin & 1) | (i ^ 5) )
passo a passo agora
1 - quando nao for admin (admin & 1) o operador AND ( 0 & 1 ) resultarб em 0
2 - com o operador XOR quando dois numero forem iguais resulta em 0
3 - com o operador OR, 0 e 0 й 0
portanto da forma que eu fiz enquanto nao for 0 vai imprimir, quando for nao imprime!
Quando eu ia postar vi que eu tinha feito de uma forma igual a sua, parece que a lуgica as vezes sу tem um caminho.

Quote:
Originally Posted by Willian_Luigi
View Post
Cк usou a mesma lуgica que eu, nгo vale, a diferenзa й que eu botei uma porta a mais pra garantir que o admin nгo seria 1.

Bacana, ficou bem mais simples.
Й verdade, mas jб viu existe diversas maneiras para criar

aqui vai o meu:

pawn Code:
if( (admin & 1) | (item ^ 5) )
Demorei uns 30~40 minutos.
Reply
#9

A do DartakousLien й uma forma simplificada do Willian.

Os campхes sгo Will e Dartakous. Quem mais?
Reply
#10

Quote:
Originally Posted by BlueX
View Post
Й verdade, mas jб viu existe diversas maneiras para criar
Quando se trabalha com sistemas lуgicos, oque a gente considera nгo sгo 'vбrias formas' de se fazer algo, mas sim uma equaзгo que te leva a uma saнda X, depois que vocк tem isso, basta ir aplicando simplificaзхes lуgicas...

Vocк monta o esquema, chega a um resultado, seja lб por soma dos produtos ou produto das somas e depois vocк pode simplificar o mesmo.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)