Diferenças entre edições de "Número sequencial combinatório"

1 407 bytes removidos ,  15h16min de 19 de outubro de 2013
remoção de informação sem fontes que foi contestada.
(remoção de informação sem fontes que foi contestada.)
CSN = (n!/(r!(n-r)!)) - x
// ou: CSN = combinação(n, r) - x
 
== Conversão notação CSN para combinatorial ==
Demonstra-se abaixo uma fórmula genérica para obtenção da combinação dado um código CSN qualquer.
 
<math>
Q(x) = \left (
\left
\{ \begin{matrix} {1}, & \mbox{se }x \le 0 \\
{\prod_{k=1}^{n} {
\left (
\left
\{ \begin{matrix}
{(k+1) \over k}
, & \mbox{se }{k \choose {r - x + 1}} \le
({n \choose r} - csn -
\left (
\left
\{ \begin{matrix} {0}, & \mbox{se }x \le 1 \\
{
\sum_{i=1}^{x-1}
{
{Q(x - 1) \choose (r - i + 1)}
}
}, & \mbox{se }x > 1
\end{matrix}
\right )
\right .
)
\\
{1}, & \mbox{se }falso
\end{matrix}
\right )
\right .
}} , & \mbox{se }x > 0
\end{matrix}
\right )
\right .
{- 1}
</math>
 
<math>
A(x) = n - Q(x)
</math>
 
Segue-se abaixo, em notação computacional, o algoritmo equivalente.
 
n = número de elementos a serem combinados
r = números por combinação
a = vetor para receber a combinação (a[1]=primeiro elemento)
csn = código CSN de entrada
 
csn = combinação(n, r) - csn
k = n + 1
Para i de r até 1 faça
Repita
k = k - 1
Se k >= i Então
x = combinação(k, i)
Senão
x = 0
Fim Se
Até x <= csn
csn = csn - x
a[r-i+1] = n - k
Fim Para
Se csn >= 0 Então
a[r] = a[r] - csn
Fim Se
 
Este algoritmo nao funciona. A pessoa que editou no wikipedia, ou nao testou este algotitmo, ou nao tem a minima ideia do que ta falando.
 
== {{Ver também}} ==
38 603

edições