/// <summary> /// 初始化一个<see cref="RandomBuilder"/>类型的实例 /// </summary> /// <param name="seed">种子数</param> public RandomBuilder(int seed) { _random = new Random(seed); }
protected Tuple <int, int, int> SampleItemPair(int userId, Hashtable itemsTable, int[] itemIds, Core.Random random) { // an item rated by a user int itemId = itemIds[random.Next(itemIds.Length)]; while (!itemsTable.ContainsKey(itemId)) { itemId = itemIds[random.Next(itemIds.Length)]; } // an item which has not been rated by a user int otherItemId = itemIds[random.Next(itemIds.Length)]; while (itemsTable.ContainsKey(otherItemId)) { otherItemId = itemIds[random.Next(itemIds.Length)]; } return(Tuple.Create(userId, itemId, otherItemId)); }
/// <summary> /// 初始化一个<see cref="RandomBuilder"/>类型的实例 /// </summary> public RandomBuilder() { _random = new Random(); }
protected int SampleOtherItemId(int userId, Hashtable itemsTable, int[] itemIds, Core.Random random) { // an item which has not been rated by a user int otherItemId = itemIds[random.Next(itemIds.Length)]; while (itemsTable.ContainsKey(otherItemId)) { otherItemId = itemIds[random.Next(itemIds.Length)]; } return(otherItemId); }