Existe um algoritmo eficiente para determinar a probabilidade de um grande inteiro escolhido aleatoriamente não é divisível por qualquer inteiro de algum conjunto?

cs.stackexchange https://cs.stackexchange.com/questions/124708

Pergunta

Dado um conjunto de 10 inteiros $ a= A= A_1, A_2, \ CDOts A_ {10} $ Há um algoritmo eficiente que pode me dizer qual é a probabilidadeUm inteiro escolhido aleatoriamente entre $ 1 $ e $ 10 ^ {10} $ não > Divisível por qualquer membro deste conjunto.

Eu entendo que o princípio de exclusão de inclusão pode ser usado para resolver esse problema, mas não consigo descobrir como implementá-lo para que funcione de forma eficiente.

nota : quando digo "eficiente", quero dizer tempo polinomial, mas não tenho certeza de que qualifica como tempo polinomial é esse caso, ambas as variáveis.

Foi útil?

Solução

Deixe $ \ mathbf x $ Seja um número aleatório no intervalo $ 1, \ LDOTS, n $ , e deixe $ E_I $ denotam o evento que $ \ mathbf x $ é divisível por $ a_i $ . Você está interessado na probabilidade de que nenhum dos eventos $ E_1, \ LDOTS, E_M $ acontece (no seu caso, $ m= 10 $ ). Usando o princípio de inclusão-exclusão, isso reduz para calcular a probabilidade dos eventos da forma $ E_ {I_1} \ Land \ CDOts \ Land E_ {I_K} $ , isto é, $ \ mathbf x $ é divisível por todos $ a_ {i_1}, \ ldots, a_ {i_k} $ . Como uma $ \ mathbf x $ é divisível por um monte de números se for divisível por sua LCM, é suficiente para determinar a probabilidade de que $ \ mathbf x $ é divisível por $ a $ .

entre $ 1, \ LDOTS, N $ , os números divisíveis por $ a $ são $$ A, 2A, 3A, \ LDOTS, \ LFLOOR N / A \ RFLOOR A, $$ No total $ \ lFloor N / A \ RFloor $ números. Daí a probabilidade de $ \ mathbf x $ é divisível por $ a $ é exatamente $$ \ frac {\ lFloor n / a \ rfloor} {n}. $$

Licenciado em: CC-BY-SA com atribuição
Não afiliado a cs.stackexchange
scroll top