2011-05-04 61 views

回答

1

問題是,鏈接問題中的Shuffle擴展方法每次都實例化一個新的Random對象。由於默認構造函數使用Environment.TickCount爲隨機數生成器播種,並且這一切都發生得非常快,所有列表都獲得相同的隨機種子。

您需要實例化一個屬於自己的Random實例,並把它傳遞給Shuffle過載:

public static IEnumerable<T> Shuffle<T>(this IEnumerable<T> source, Random rng) 

this answer

你的代碼的話,應該是:

Random myRandom = new Random(); 
SetOfSets.Select(set => set.Shuffle(myRandom));