package com.spbsu.exp.modelexp.users;
import com.spbsu.commons.math.vectors.Vec;
import com.spbsu.commons.math.vectors.VecTools;
import com.spbsu.commons.math.vectors.impl.vectors.ArrayVec;
import com.spbsu.commons.random.FastRandom;
import com.spbsu.exp.modelexp.Query;
import com.spbsu.exp.modelexp.User;
import gnu.trove.map.TObjectIntMap;
import gnu.trove.map.hash.TObjectIntHashMap;
import java.util.Arrays;
/**
* User: solar
* Date: 07.04.15
* Time: 14:43
*/
public class FeedbackUser extends UniformUser {
private double lambda;
public FeedbackUser(FastRandom rng, double lambda) {
super(rng, lambda);
this.lambda = lambda;
}
@Override
public void feedback(double score) {
if (rng.nextDouble() > Math.pow(0.99, 1/lambda)) // cookie dead
lambda = 0;
lambda *= Math.exp(0.0001 * (score - 1));
}
@Override
public double activity() {
return lambda;
}
}