SchattenMann Posted December 22, 2006 at 05:43 PM Report #71977 Posted December 22, 2006 at 05:43 PM boas ppl... pois bem o meu pedido pode parecer complexo ou ate estranho mas é bastante simples ate... pois bem acho q o melhor e mesmo um exemplo e aqui vai: tnh 3 tarefas: A, B e C 3 funcionarios: Zé, Manuel e Maria com diferentes "niveis de acesso" , ou seja, determinados funcionarios podem fazer tarefas q outros nao...em tabela temos: A B C 01 Ze 1 1 0 02 Manuel 0 1 1 (todos percebem os 0s e os 1s) 03 Maria 0 0 1 o que eu quero é uma funçao (que eu acredito mesmo que haja) que aleatoriamente lançe um numero (neste caso 01.02 ou 03) com base nestas condiçoes. a parte da verificaçao do acesso é facil, com IF ou CASE está resolvido facilmente. o que eu nao sei e mesmo como programar para atribuir um numero aleatorio e (importante) que nao se repita na mesma "saida" (tipo atribuir a tarefa A e C ao mesmo funcionario) eu penso que seja bastante simples para quem sabe a funçao...agora complica porque quero implementar mais uma condiçao... digamos que vou atribuir uma nota - que servira como probabilidade - a cada funcionario conforme desempenho ou eficiencia...exemplificando: devido a extrema confiança que tenho no Zé dou lhe nota 10 (P = 10/10). já o Manuel como é estagiario e tal tem nota 7 (P=7/10) tenho uma tarefa do tipo B para atribuir logo os candidatos sao o Zé e o Manuel. dadas as P, provavelmente quem sera escolhido será o Zé.... no final o efeito sera que, em 17 tarefas B, 10 serao atribuidas ao Zé e apenas 7 ao Manuel.... penso que todos perceberam o que quero...teoricamente acho que seja simples...quero algo do tipo totoloto mas que de para atribuir as probabilidades a cada numero (que serve como cod de funcionario) agradeço a aajuda cumps
Icaro Posted December 22, 2006 at 06:30 PM Report #71996 Posted December 22, 2006 at 06:30 PM bom para o nº aleatório ... http://www.portugal-a-programar.pt/forums/topic/0-find-topic/?do=findComment&comment=70331
SchattenMann Posted December 22, 2006 at 06:36 PM Author Report #72000 Posted December 22, 2006 at 06:36 PM bom para o nº aleatório ... http://www.portugal-a-programar.pt/forums/topic/0-find-topic/?do=findComment&comment=70331 ja tinha tado a ler isso mas... falta as probabilidades...onde eq adiciono probabilidades no RND?
shumy Posted December 22, 2006 at 06:37 PM Report #72001 Posted December 22, 2006 at 06:37 PM Não trabalho em VB, mas penso que terá um função de probabilidades como as outras linguagens. Agora, o que queres é um probabilidade com pesos. 1º Tens de saber qual é o range que a função de probabilidades te dá. Se for de [0,1] numeros reais. 2º divides o range em % . Exemplo 20,30, 50. Verificas onde é que o valor da função cai. [0,0.2] (0.2,0.5] (0.5,1] Aqui há coisa de 2 anos fazia umas malhas de croché, depois fartei-me e fui para informática!
SchattenMann Posted December 22, 2006 at 06:43 PM Author Report #72002 Posted December 22, 2006 at 06:43 PM quanto ha perte de existir uma funçao com probabilidades e exactamente o que quero descobrir... quanto ao resto pa ser franco nao percebi completamente onde querias explicar...criaste grupos com as prob...ok...e depois? cumps
SchattenMann Posted December 22, 2006 at 06:47 PM Author Report #72004 Posted December 22, 2006 at 06:47 PM encontrei agora mesmo este site http://www.entisoft.com/estools/MathProbability_Declarations.HTML se forem ao main encontram varias funçoes e nao so a que estou a procurar... ele tem varias funçoes de random...apesar de ainda nao ter encontrado a apropriada para mim.... ? mas espero que alguem me consiga dar uma ajudita 😉
shumy Posted December 22, 2006 at 06:58 PM Report #72007 Posted December 22, 2006 at 06:58 PM Em 22/12/2006 às 19:43, SchattenMann disse: quanto ha perte de existir uma funçao com probabilidades e exactamente o que quero descobrir... quanto ao resto pa ser franco nao percebi completamente onde querias explicar...criaste grupos com as prob...ok...e depois? cumps E depois!!! Só precisas de ter uma distribução de probabilidade uniforme, o resto é só aplicar matemática. Qual é a dificuldade de achar uma função de Probabilidade para VB? GOOGLE "VB random function" Aqui há coisa de 2 anos fazia umas malhas de croché, depois fartei-me e fui para informática!
SchattenMann Posted December 22, 2006 at 11:00 PM Author Report #72057 Posted December 22, 2006 at 11:00 PM m8 eu tou a pedir ajuda...nao sarcasmo... nao percebi a tua explicaçao...se quiseres repetir agradeço....caso contrario sarcasmo nao e bem vindo tnx
Saco Posted December 22, 2006 at 11:07 PM Report #72060 Posted December 22, 2006 at 11:07 PM Acho que o que ele queria dizer é que depois geras números e vês em que intervalo caiu o número e tens o teu acontecimento. Seguindo o exemplo anterior... P (acontecimento1) = 20% P (acontecimento2) = 30% P (acontecimento3) = 50% Então se há 3 acontecimentos possíveis, criam-se 3 grupos [0-19], [20-49], [50-99]. Depois gera-se um número entre 0 e 99, vê-se em que intervalo se encontra e pronto.
SchattenMann Posted December 22, 2006 at 11:38 PM Author Report #72063 Posted December 22, 2006 at 11:38 PM mas eu nao quero probabilidades para o acontecimento...quero probabilidades para o funcionario! se quiserem esqueçam o contexto...eu quero algo como a roleta russa mas viciada...ou seja em x de todos os num terem a mesma hipotesse eu dou a propabilidade de cada...
Revolt Posted December 23, 2006 at 01:02 AM Report #72069 Posted December 23, 2006 at 01:02 AM imaginemos então uma roleta russa com 3 resultados possíveis (só pa ser mais fácil 😉 ) Dim RandomNum as New Random Dim num as Integer num = RandomNum.Next(1,100) Select Case num Case 1 to 50 '50% probabilidade *acção p/ 1º resultado* Case 51 to 70 '20% probabilidade *acção p/ 2º resultado* Case 71 to 100 '30% probabilidade *acção p/ 3º resultado* End Select Revolt Website Antigo Nick: Pauzinhos
Saco Posted December 23, 2006 at 10:33 AM Report #72090 Posted December 23, 2006 at 10:33 AM Ora... exactamente... cada valor da roleta russa é um acontecimento... não tem nada que saber.
SchattenMann Posted December 23, 2006 at 12:51 PM Author Report #72107 Posted December 23, 2006 at 12:51 PM imaginemos então uma roleta russa com 3 resultados possíveis (só pa ser mais fácil 😉 ) Dim RandomNum as New Random Dim num as Integer num = RandomNum.Next(1,100) Select Case num Case 1 to 50 '50% probabilidade *acção p/ 1º resultado* Case 51 to 70 '20% probabilidade *acção p/ 2º resultado* Case 71 to 100 '30% probabilidade *acção p/ 3º resultado* End Select ora pois bem se percebi correcto isso vai criar um numero random entre 1 a 100 depois temos 50% P de calhar na accção 1, 20 % na acção 2 e 30% na acção 3.... o randomnum 1,100 seria o cod do funcionario.... e isso?
Saco Posted December 23, 2006 at 01:50 PM Report #72116 Posted December 23, 2006 at 01:50 PM Não é bem isso mas é parecido. É mais se o randomnum 1,100 for entre 1 e 50 é o funcionário 01; se for entre 21 e 70 é o funcionário 02, se for entre 71 e 100 é o funcionário 03.
SchattenMann Posted December 23, 2006 at 02:02 PM Author Report #72117 Posted December 23, 2006 at 02:02 PM Não é bem isso mas é parecido. É mais se o randomnum 1,100 for entre 1 e 50 é o funcionário 01; se for entre 21 e 70 é o funcionário 02, se for entre 71 e 100 é o funcionário 03. NICE! nao tinha pensado assim...eq nao estava mm a perceber o vosso raciocinio.... realmente assim ate nao nada mau pensado... sera q a funçao funciona tipo: num = RandomNum.Next(1,txt1.text) ou Case 1 to lbl1.caption....? eu o q estava a pensar agora seria criar uma tabela onde simularia as probabilidades...exemplo: 01 Zé 75% 02 Manuel 25% logo faria uma tabela parecida com isto cod sum 01 1 01 1 01 1 02 1 de seguida faria algo que em portugues seria: somar os campos "sum" o que daria o total de linhas da tabela depois faria rnd(1,soma) o que daria um num random que seria algures a linha escolhida... o q acham? sera viavel...? cumps
Revolt Posted December 23, 2006 at 04:20 PM Report #72129 Posted December 23, 2006 at 04:20 PM penso que iria funcionar Revolt Website Antigo Nick: Pauzinhos
SchattenMann Posted December 23, 2006 at 05:11 PM Author Report #72144 Posted December 23, 2006 at 05:11 PM entao so uma cena....eu tou a usar access e uso a ligaçao ADODC...mas nunca usei um comando para me posicionar num sitio especifico...nunca precisei de algo assim p exemplo se quisesse neste pedaço de codigo escolher a posiçao...50....como o faria? Private Sub ListClientes_Click() frmSuporte.Adodc1.Recordset.MoveFirst login_counter = 0 Do While Not frmSuporte.Adodc1.Recordset.EOF If frmSuporte.Adodc1.Recordset.EOF = "False" Then If ListClientes.Text = frmSuporte.txtNomeCliente.Text Then lblCod_cliente.Caption = frmSuporte.txtCod_cliente.Text End If End If frmSuporte.Adodc1.Recordset.MoveNext Loop frmSuporte.Adodc1.Recordset.Move(50)....? ? e qnt a esta parte? sera q a funçao funciona tipo: num = RandomNum.Next(1,txt1.text) ou Case 1 to lbl1.caption....? é possivel? ou tenho que criar uma variavel atraves da caption/text? tipo x = txt1.text num = RandomNum.Next(1,X) tnx
Revolt Posted December 23, 2006 at 06:33 PM Report #72159 Posted December 23, 2006 at 06:33 PM quanto à tua primeira dúvida, não te sei realmente ajudar. Quanto à 2ª, para fazeres desse modo tens que fazer tipo: RandomNum.Next(1, Cint(TextBox.Text) Revolt Website Antigo Nick: Pauzinhos
SchattenMann Posted December 23, 2006 at 06:39 PM Author Report #72161 Posted December 23, 2006 at 06:39 PM quanto à tua primeira dúvida, não te sei realmente ajudar. Quanto à 2ª, para fazeres desse modo tens que fazer tipo: RandomNum.Next(1, Cint(TextBox.Text) ok bgd so falta agora a outra parte... alguem q saiba pff?
SchattenMann Posted December 26, 2006 at 03:52 PM Author Report #72479 Posted December 26, 2006 at 03:52 PM Dim RandomNum as New Random compile error... :S qual e o problema???
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now