Ejemplo n.º 1
0
        public override IList <IRecommendedItem> Recommend(long userID, int howMany, IDRescorer rescorer)
        {
            IDataModel dataModel           = GetDataModel();
            int        numItems            = dataModel.GetNumItems();
            List <IRecommendedItem> result = new List <IRecommendedItem>(howMany);

            while (result.Count < howMany)
            {
                var it = dataModel.GetItemIDs();
                it.MoveNext();

                var skipNum = random.nextInt(numItems);
                for (int i = 0; i < skipNum; i++)
                {
                    if (!it.MoveNext())
                    {
                        break;
                    }                           // skip() ??
                }
                long itemID = it.Current;
                if (dataModel.GetPreferenceValue(userID, itemID) == null)
                {
                    result.Add(new GenericRecommendedItem(itemID, randomPref()));
                }
            }
            return(result);
        }
        public FixedSizeSamplingIterator(int size, IEnumerator <T> source)
        {
            this.buf = new List <T>(size);
            int           n       = 0;
            RandomWrapper wrapper = RandomUtils.getRandom();

            while (source.MoveNext())
            {
                T current = source.Current;
                n++;
                if (this.buf.Count < size)
                {
                    this.buf.Add(current);
                }
                else
                {
                    int num2 = wrapper.nextInt(n);
                    if (num2 < this.buf.Count)
                    {
                        this.buf[num2] = current;
                    }
                }
            }
            this.enumerator = this.buf.GetEnumerator();
        }
Ejemplo n.º 3
0
        protected void shufflePreferences()
        {
            RandomWrapper wrapper = RandomUtils.getRandom();

            for (int i = this.cachedUserIDs.Length - 1; i > 0; i--)
            {
                int posB = wrapper.nextInt(i + 1);
                this.swapCachedPreferences(i, posB);
            }
        }
 public void shuffle()
 {
     unstagedPreferences = (IPreference[])preferences.Clone();
     /// Durstenfeld shuffle
     for (int i = unstagedPreferences.Length - 1; i > 0; i--)
     {
         int rand = random.nextInt(i + 1);
         swapCachedPreferences(i, rand);
     }
 }
Ejemplo n.º 5
0
        protected void shufflePreferences()
        {
            RandomWrapper random = RandomUtils.getRandom();

            /// Durstenfeld shuffle
            for (int currentPos = cachedUserIDs.Length - 1; currentPos > 0; currentPos--)
            {
                int swapPos = random.nextInt(currentPos + 1);
                swapCachedPreferences(currentPos, swapPos);
            }
        }