File size: 967 Bytes
81bd636
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/* 判定:k 落在哪一段。单位:E_d = 1, C_d = 0。 */
function verdict(k, L, dC, dE) {
  const lines = { open: L, innovate: dC / dE };   // 两条门槛
  const lower = Math.max(lines.open, lines.innovate);
  const willOpen    = k > lines.open;             // 蒸馏者愿意公开
  const willInnovate = k > lines.innovate;        // 有人愿意自己做
  let state;
  if (!willOpen) state = "secrecy";               // 没人公开:全闭源
  else if (!willInnovate) state = "imitation";    // 公开了但没人自己做:全蒸馏
  else state = "healthy";
  return { lines, lower, willOpen, willInnovate, state };
}

/* 四格净收益。E_d = 1, C_d = 0 => E_n = 1 + dE, C_n = dC */
function payoff(k, L, dC, dE) {
  const En = 1 + dE;
  return {
    imitateClosed:  0,
    imitateOpen:    k * 1 - L,
    innovateClosed: -dC,
    innovateOpen:   -dC + k * En - L,
  };
}

if (typeof module !== "undefined") module.exports = { verdict, payoff };