Baterias e grãos incluídos
25/09/2008
Certa vez, no provedor onde eu trabalhava, Diginet, uma das garotas do atendimento apareceu na sala de administração de redes com um ingresso para um show. Como éramos 6 na sala, e todos queriam o ingresso, tivemos que decidir quem ficaria com ele, ao melhor estilo “programador” de resolver as coisas: com código.
import random
concorrentes = ["acacio", "alemao", "humberto", "karlisson", "luis", "oliveira"]
random.choice(concorrentes)
E o ganhador foi Luís. Porém, não satisfeito com o resultado do código, Alemão, que programava em Perl, protestou: - “Não gostei não. Se fosse em Perl eu teria ganhado!”
Mantendo a retro-compatibilidade
- 09/22/08 - Egolinks
- 05/11/08 - De volta e lá novamente
- 06/25/08 - Promoção BR-Linux, Wikipédia e Bozoscripts
- 07/20/08 - Guia do amigo programador
- 06/23/07 - A parábola dos padrões esquecidos


E se fosse em JAVA? Será que ia ter vencedor?
PS: primeiro?
segundoooo
sempre venho aqui mas nunca comento….
meus parabens adoro as suas tirinhas…
boa noite..
Terceiro… quase segundo
Sempre ótimas tiras…
Mas se fosse eu que tivesse programado, eu teria ganhado!
Continue assim
Sucessos
haueeuauaehuaehaeueaeu
Se fosse em C eu ganharia. Ou não. XD
Quarto, ou quinto, vai depender da sorte.
hehehe, é roleta russa hehe
Abração!!
auhaiheauhe
alemão iria colocar um backdor no algoritmo dele para controlar o vencedor ;P
Obfuscando o código =P
Ouxi, aquela estória de primeiro dos comentários lá do Kid tá virando moda aqui?
Eu gosto de python, meu esposo de perl e vivemos felizes (algumas rusgas mas nada demais).
Eu teria ido nos palitinhos.Se fosse em Assembly provavelmente eu teria ficado de fora do sorteio porque estaria escrevendo o código enquanto os outros estariam resolvendo o problema…
Eu usaria o random.org. E não conheço python, então não entendi a tira.
“Não gostei não. Se fosse em Perl eu tinha ganhado!”
KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
eu sou tenho tanto azar que se eu escrevesse o código
puts “Luiz”
ainda eu não ganhava XD
_____
=>&ƒÓá°§
Æ!!
Como li numa tirinha do Dilbert:
“Esse é o problema dos randômicos…Você nunca sabe se são mesmo randômicos” =P
Há braços
Se eu tivesse programado eu teria ganhado!!! rsrsrs
_____________________________
import random
concorrentes = ["anderson", "anderson", "anderson", "anderson", "anderson", "anderson"]
random.choice(concorrentes)
_____________________________
Mto bom!!
Ps.: Décimo terceiro! huahshuashu
Não sei se gostei mais do quadrinho ou da história que você contou…
By the way… genial esse olhar do Bob Noob.
Eu não sei se em outras linguagens outros ganhariam. Mas o código aí sempre dará o mesmo vencedor!
Em praticamente todas as linguagens o random() é um gerador pseudo-aleatório. Se a semente (seed) é sempre a mesma, a primeira chamada sempre retorna o mesmo resultado. Concordam?
Muito legal a tirinha e a história, alguém ai quer ativar o modulo coffee? ou quem sabe um break-fast? hehe
@Jonas: Realmente que eu me lembro, se você não iniciar a semente para gerar o número aleatório vai dar o mesmo número sempre, mas não conheço Python, pode ser que ele já faça isso… Na duvida eu testaria o programa antes!
Até mais.
Estou gostando muito dessa série do grande h4×0r.
Uma vez na pós eu fiz um desses em Javascript para sortear ordem de apresentação do grupo.
Em PHP o sorteio do ingresso seria assim:
$a[array_rand($a = array("acacio", "alemao", "humberto", "karlisson", "luis", "oliveira"))]
E em Javascript:
var a = ["acacio", "alemao", "humberto", "karlisson", "luis", "oliveira"]
a[Math.floor(Math.random()*a.length)]
Você deveria ter feito assim:
var quotes=new Array()
quotes[0]=’karlisson’
quotes[1]=’karlisson’
quotes[2]=’karlisson’
quotes[3]=’karlisson’
quotes[4]=’karlisson’
quotes[5]=’karlisson’
var whichquote=Math.floor(Math.random()*(quotes.length))
document.write(quotes[whichquote])
!
huahuahua! Boa! O melhor é que eram duas senhas, e os dois random.choice() deram eu e Luís, exatamente os dois programadores Python da época…
Essa aí tá devidamente documentada no nosso Wiki. Se você quiser, eu passo a página Causos toda. Dá uma boa série…
Publicando uma que eu acabei de pescar:
Luís ao telefone com Alexandre:
- Ah, beleza, eu conserto agora! Pera que eu vou só reiniciar o Asterisk.
[tu... tu... tu...]
Pelos exemplos dados em outras linguagens acima, pode-se ver que Python é mais simples e legível
@Jonas Não, esse comando não dá o mesmo resultado sempre.
você programa em quais linguagens, karlisson?? qual a sua preferida atualmente?
@wille
Não sou um expert em nenhuma delas, mas já programei/programo nessas: PHP, ASP, Javascript, Python, C, C++, Java, Actionscript, Shellscript, Scheme, SQL, (x)HTML e CSS. As preferidas são Python e Javascript.
Genial…
Pra galera:
Pouco importa a linguagem que você usa, desde que saiba como usar e quando usar algum recurso. Cada caso, é um caso e requer ações particulares… Por exemplo, em pascal… deixa pra lá :p
Agora Python fascina e merece o ‘10′ sua clareza e ausência de redundância no código…
Se fosse em PHP EU teria ganho
$concorrentes = array(”acacio”, “alemao”, “humberto”, “karlisson”, “luis”, “oliveira”);
echo $concorrentes[rand(0,count($concorrentes)-1)]; //Henrique
Hehe
No scilab (até a versão 3) retornava sempre o mesmo número, e o programa é de cálculo numérico
#!/bin/bash
concorrentes=(acacio alemao humberto karlisson luis oliveira)
echo “${concorrentes[RANDOM%${#concorrentes[@]}]}”
Mais clareza que isso, só em INTERCAL…
Só pra brincar
int main() {
string conc[6] = {”acacio”, “alemao”, “humberto”, “karlisson”, “luis”, “oliveira”};
vector concorrentes(conc, conc + 5);
random_shuffle(concorrentes.begin(), concorrentes.end());
cout << concorrentes[0];
}
e o felizardo coincidentemente foi o Luís
int main() {
string conc[6] = {”acacio”, “alemao”, “humberto”, “karlisson”, “luis”, “oliveira”};
vector concorrentes(conc, conc + 5);
random_shuffle(concorrentes.begin(), concorrentes.end());
cout << concorrentes[0];
}
e o felizardo coincidentemente foi o Luís
( droga, os sinais de maior menor que circundam “string’ não são mostrados!!!
preconceito com o C++. )
Groovy:
nomes = [”acacio”, “alemao”, “humberto”, “karlisson”, “luis”, “oliveira”]
R = new Random()
print nomes[R.nextInt(nomes.size)]
Jonas, o código não exibe sempre um mesmo ganhador.Isso acontece se você especificar uma seed constante quando cria o objeto Random. P/ tornar a escolha um pouco mais aleatória (se é que dá pra chamar assim num pc) posso fazer R = new Random(System.currentTimeMillis()+Runtime.runtime.freeMemory()).
Caracaaaa, muito bom, como sempre, cada dia que passa. abc para todos.
Pq não em PHP!? Tu é contra PHP?! Nunca mais vou entrar no blog!! haeuaheoihu
Brincadeira. haeihoaeiae
Mais uma bela tirinha
Esta série está muito boa karlisson, parabens.
Se fosse feito em C++, os resultados já estariam prontos ante mesmo de você criar o código ¬¬”
Será que esse lance de Random Numbers existe mesmo ou é coisa que botaram na sua cabeça? ?_?
É coisa que botaram na sua cabeça
Cara alguem sabe quando sai o proximo quadrinho?
eu não conssigo ficar + 1 minuto sem
parabens pelo blog
Sabe o que eu gosto daqui? É que mesmo quando eu não entendo o conceito da piada, eu ainda rio! Parabéns, seu blog é genial xD
Parabéns pelas idéias e conteúdo do Blog.
[]’s
Tá foda, tirinha nova que é bom nada.
Ahh, mas é mto ruim mexer no Explorer, coloquei o Opera hoje aki, e axo que foi uma das melhores coisas que eu fiz!
haushaushaushaus
Troll é fo**
explorer realmente é muito ruim
alias MicroSoft é osso
mudei pro linux a uns dias a mudança é muito grande realmente
+velocidade
-erros
-virus
e a interface é ótima
Linux Rules o/
quanto a quem prefere Explorer… cada um tem seu gosto uns preferem a carne e outros o osso xD(e fazer carinhas é Rox rapá)
Karlisson, faz em assembly que é melhor!!! “mais eficiente!”
hiauhaiuha!
próx ano qdo tú terminar, tú faz uma tirinha! hiuahaiuha!!!
mto bom post… abração!
Se fosse em Java, o show já teria terminado e vocês ainda estariam terminando a documentação das duas últimas classes do programa…
BTW, gostei desse novo layout (se é que é novo mesmo, faz tempo que não entro aqui).
Não sei qual o motivo de tanto alvoroço por causa do Python.

Não vi a mínima graça nele, sou muito mais Ruby.
Ahh mas em Javascript também ficaria legal
var concorrentes = new Array(”acacio”, “alemao”, “humberto”, “karlisson”, “luis”, “oliveira”);
var O_Escolhido = parseInt(Math.random()*concorrentes.length);
document.write(concorrentes[O_Escolhido]);
Se fosse em brainfuck… bom, eu nem consseguiria fazer uahauhauha
Hoje consegui uma oportunidade de rodar o código do Vìtor de Araújo. Fui digitando na mão e depois de 3 erros muito loucos funfou! Shell Script é demais!
@Jonas
Em python o random usa o “system time” como seed, ou o os.urandom() se disponível no sistema. =D
http://docs.python.org/library/random.html