Jump to content

Recommended Posts

Posted

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

Posted

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!

Posted

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

Posted
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!

Posted

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.

Posted

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...

Posted

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
Posted

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?

Posted

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.

Posted

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

Posted

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.