Desafio mais foda que vocк tentarб hoje .. -
ipsBruno - 10.10.2013
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.
Re: Desafio mais foda que vocк tentarб hoje .. -
WLSF - 10.10.2013
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.
Respuesta: Desafio mais foda que vocк tentarб hoje .. -
ipsBruno - 10.10.2013
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
Re: Desafio mais foda que vocк tentarб hoje .. -
WLSF - 10.10.2013
pawn Code:
if ( ( (admin & 1) | ( (admin ^ 7) & (item ^ 5) ) ) )
Respuesta: Desafio mais foda que vocк tentarб hoje .. -
ipsBruno - 10.10.2013
Aguardando outra pessoa responder o desafio. Por enquanto o campeгo й o Will
Respuesta: Desafio mais foda que vocк tentarб hoje .. -
DartakousLien - 10.10.2013
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!
Re: Respuesta: Desafio mais foda que vocк tentarб hoje .. -
WLSF - 10.10.2013
Quote:
Originally Posted by DartakousLien
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.
Re: Respuesta: Desafio mais foda que vocк tentarб hoje .. -
RebeloX - 10.10.2013
Quote:
Originally Posted by DartakousLien
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
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.
Respuesta: Desafio mais foda que vocк tentarб hoje .. -
ipsBruno - 10.10.2013
A do DartakousLien й uma forma simplificada do Willian.
Os campхes sгo Will e Dartakous. Quem mais?
Re: Respuesta: Desafio mais foda que vocк tentarб hoje .. -
WLSF - 10.10.2013
Quote:
Originally Posted by BlueX
Й 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.