Java 哪种算法适用于亲密接触?

Java 哪种算法适用于亲密接触?,java,c++,algorithm,Java,C++,Algorithm,我需要实施一个项目,人与人之间的视觉亲密,有人能推荐一个算法,为人的亲密在电话联系 亲密度会随着时间的推移而减弱(如果长时间没有点击/拨号,亲密度会自动减弱) 在我的通讯簿中假设: Person Intimacy(0-100%) A 40% B 80% C 10% 我打电话给A后,A的亲密度需要提高,就像这样 Person Intimacy(0-100%) A 42% B

我需要实施一个项目,人与人之间的视觉亲密,有人能推荐一个算法,为人的亲密在电话联系

亲密度会随着时间的推移而减弱(如果长时间没有点击/拨号,亲密度会自动减弱)

在我的通讯簿中假设:

Person     Intimacy(0-100%)
   A         40%
   B         80%
   C         10%
我打电话给A后,A的亲密度需要提高,就像这样

Person     Intimacy(0-100%)
   A         42%
   B         80%
   C         10%
Person     Intimacy(0-100%)
   A         37%
   B         78%
   C         8%
5天后什么也没发生,A,B,C的亲密度需要下降,就像这样

Person     Intimacy(0-100%)
   A         42%
   B         80%
   C         10%
Person     Intimacy(0-100%)
   A         37%
   B         78%
   C         8%
谢谢大家的回答

亲密度会随着时间的推移而减弱(如果长时间没有点击/拨号,亲密度会自动减弱)

您可以使用表示为

如果你的问题有一个标准的解决方案,我会感到惊讶


一个典型的图形有这样的形状



您是否需要一种算法,根据您给地址簿中的某个人打电话的频率来确定您对他们的了解程度

对于这一点,你可以再次使用,我只是猜测什么可能是有用的

你能说得更详细些吗

根据你提供的数据,半衰期约为28天。您可以像这样每天使用EWMA

double alpha = 1.0/28;

score = (contacted ? 1 : 0) * alpha + score * (1 - alpha); 
e、 g


假设衰变是28天,我给同一个人打了200天电话。比分看起来像

double score = 0;
double alpha = 1.0 / 28;
boolean contacted = true;
for (int i = 0; i < 200; i++) {
    score = (contacted ? 1 : 0) * alpha + score * (1 - alpha);
    System.out.printf("%.3f%n", score);
}    

分数不可能大于最大值(在这种情况下,等式中的
1

你能用数学术语定义“联系亲密”和“视觉亲密”吗?你是否在要求一种算法,根据你打电话的频率来确定你对通讯簿中某个人的了解程度?Peter,您如何定义
半衰期
120/2=60
?@AlexR半衰期,例如,与辐射一样,是指你预期的半衰期。两倍之后,它将是1/4,三倍=>1/8等。@AlexR OP必须从他的问题域中知道,在一段没有接触的时间内,“亲密关系”需要多长时间才能降到一半。Peter&Marko,感谢您的澄清。非常有趣。@bigjava请参见上面的示例
0.036
0.070
0.103
... deleted ...
0.999
0.999
0.999