Função Random

Secção dedicada à linguagem de programação favorita dos quarkianos: Python!

Função Random

Mensagempor Tharis em Quarta Out 28, 2009 3:20 pm

Para atacar este problema não é necessário saber programação. Matemática básica funciona.

Esta é uma questão que foi (é?) feita nas entrevistas de quem se candidata à Google...


Q: Given a function which produces a random integer in the range 1 to 5, write a function which produces a random integer in the range 1 to 7.
(Q: Dada uma função que produz um inteiro aleatório no intervalo 1 a 5, escreva uma função que produza um inteiro aleatório no intervalo 1 a 7)


Quem quer tentar? :D


Acrescento que é requerida distribuição uniforme.
Avatar do utilizador
Tharis
up-Quark!
up-Quark!
 
Mensagens: 387
Registado: Quinta Out 23, 2008 4:26 pm

Re: Função Random

Mensagempor RicardoCampos em Quarta Out 28, 2009 7:43 pm

Uma coisa muito simples (e pouco eficiente) de fazer é a seguinte:
Fazemos a função gerar dois números a e b aleatórios, ficando então com o par (a,b).

Portanto temos uma função g que gera 25 valores aleatórios (distribuição uniforme)

E pronto, essa função dá quase o que nós queremos. Fazemos corresponder

(1,1) = 1
(1,2) = 2
(1,3) = 3
(1,4) = 4
(1,5) = 5
(2,1) = 6
(2,2) = 7
(2,3) = 1
(2,4) = 2
.
.
.

Como 7*3 dá 21, procedemos assim para os primeiros 21 pares e se nos calhar um outro par fazemos a função correr de novo.

(Que rebuscado! Nem digam que estou em matemática)
\emph{Ricardo Campos}\in \delta \bigcap q\overline{q}
O Matemático-Físico de 2008
Avatar do utilizador
RicardoCampos
top-Quark!
top-Quark!
 
Mensagens: 1280
Registado: Sexta Jun 01, 2007 3:49 pm
Localização: Figueira da Foz/Coimbra/DMUC/DFUC, Paris... E agora Zurique!

Re: Função Random

Mensagempor Tharis em Quarta Out 28, 2009 8:59 pm

Essa é a mais simples (e melhor) solução! :hands:

Em code seria (rand5()-1) * 5 + (rand5()-1).

A minha primeira solução pegava também em dois, mas fazia o produto e depois tinha-se uma table, mas no final, lá cheguei a essa. :)
Avatar do utilizador
Tharis
up-Quark!
up-Quark!
 
Mensagens: 387
Registado: Quinta Out 23, 2008 4:26 pm

Re: Função Random

Mensagempor RicardoCampos em Quarta Out 28, 2009 9:12 pm

A sério? Foi pensado à pressão e por acaso pensei que não era lá muito boa.

Bem, vou tentar a Google amanhã.
\emph{Ricardo Campos}\in \delta \bigcap q\overline{q}
O Matemático-Físico de 2008
Avatar do utilizador
RicardoCampos
top-Quark!
top-Quark!
 
Mensagens: 1280
Registado: Sexta Jun 01, 2007 3:49 pm
Localização: Figueira da Foz/Coimbra/DMUC/DFUC, Paris... E agora Zurique!

Re: Função Random

Mensagempor Tharis em Quarta Out 28, 2009 9:24 pm

At least, foi a melhor que encontrei na net com distribuição uniforme para todos os valores. :)

Se entrares, não te esqueças de passar boa palavra de mim... :roll:


Já agora, mais algumas questões da Google: http://jhorna.wordpress.com/2007/09/08/ ... n-teasers/
Avatar do utilizador
Tharis
up-Quark!
up-Quark!
 
Mensagens: 387
Registado: Quinta Out 23, 2008 4:26 pm

Re: Função Random

Mensagempor jap em Quarta Out 28, 2009 11:05 pm

Boa! :D

Fico à espera de respostas! :wink:
José António Paixão
Departamento de Física da FCTUC
Avatar do utilizador
jap
Site Admin
Site Admin
 
Mensagens: 6790
Registado: Quinta Nov 09, 2006 9:34 pm
Localização: Univ. de Coimbra


Voltar para Pitónica

Quem está ligado

Utilizadores a navegar neste fórum: Nenhum utilizador registado e 2 visitantes

cron