Você poderia fornecer algum exemplo de distribuição univariada impossível de gerar aleatoriamente?
Deixei cser constante do Chaitin , e provar o (distribuição do) variável aleatória que é constantementec.
Se você está interessado apenas em amostrar variáveis aleatórias cujos valores podem ser razoavelmente aproximados por números de ponto flutuante de 64 bits, ou se você tem alguma tolerância semelhante a erros finitos no valor e não representava suas amostras como máquinas de Turing de qualquer maneira , considere isto:
Deixei X∼ Ber ( p ) com p = 1 - ce tente provar. Os valores0 0 and 1 are perfectly representable (in e.g. 64 bit floats with no error), but I think you'll generate them at incorrect frequencies unless you solve the halting problem.
The two CDFs are piecewise constant: one is 0 on (−∞,c) and 1 on [c,∞). The other is 0 on (−∞,0), then c on [0,1) and 1 on [1,∞). That is, one makes c relevant on the x-axis, the other on the y-axis. I'm not sure which makes sampling most difficult, so pick the one you (dis)like the most ;-)
let's say that by "impossible" we mean also cases that are very computationally expensive, e.g. that need brute-force simulations like drawing huge amounts of samples to accept just a few of them.
In this case, obvious answer seems obvious:
- Sample uniformly the prime factors of n where n is large (i.e. break RSA).
- Sample the preimages of a cryptographic hash function (i.e. generate bitcoin and break git and mercurial).
- Sample the set of optimal Go strategies (with Chinese superko rules, which make all games finite—as far as I understand).
A bit more formally: I give you a large instance of an NP-complete problem (or EXP-complete, etc.) and ask you to uniformly sample the set of solutions for me.
Probably I should accept ⊥ as a solution to no-instances (and no-instances only, and it would be the only solution). I should also come up with a bijection between e.g. integers (assuming you want to sample members of R) and solutions—which is often fairly trivial, just treat base 2 representations as truth assignments for my SAT instance, for example, and maybe use −1 to represent ⊥.
You can easily check whether any given truth assignment satisfies my SAT instance, and having checked them all you know whether any one does, so I have fully specified a CDF by giving you a boolean formula (or circuit), yet to sample the corresponding distribution you have to essentially become something at least as powerful as a SAT-solvability oracle.
So I gave you an uncomputable number which should throw sand in your gears, and I gave you a CDF that's slow to calculate. Maybe the next obvious question to ask is something like this: is there a CDF represented in some efficient form (e.g. can be evaluated in polynomial time) such that it's hard to generate samples with that distribution? I don't know the answer to that one. I don't know the answer to that one.