0

我正在对 104 个字符长的特定序列序列进行排列。我使用 plinq 生成序列,但没有随机顺序,结果永远不会复杂到无法选择。

问题是 rnd.next 和 guid.newguid 的 orderby 填满了内存并且不返回任何结果。

有什么解决方案可以从 C# 中的 linq 模式中随机选择?

var query = 
             from sp1 in polar
                    ...
             from vp15 in polar                           
             where GetCompressionRatio(sp1+...+vp15)>1.5
             orderby rnd.Next(0, 100000000) * rnd.Next(0, 100000000)
             select sp1+...+vp15;


foreach (var element in query)
{
    //output
}
4

1 回答 1

1

您正试图用同一个查询解决两个截然不同的问题。即使有一种聪明的方法可以做到这一点,我还是建议你一步一步来。

首先,生成一个非随机排列。然后,对先前的结果应用一些随机排列算法。您可以尝试非常简单的Knuth Shuffle

您的意图会更加清晰,并且分解可以为您在测试和调试方面带来显着优势。

于 2012-08-25T19:22:07.347 回答