题库逻辑评估分析(增加业务部分)

题数:37

题列表:[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, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37]

1.第一个月共有10笔必选业务(上限为10笔)

[1, 5/8, 7/17/18, 15, 25, 30, 26, 28, 31, 37]

1.1 排列数:

1.1.1

  第一笔固定为第一天。

1.1.2

  时间必须为最后一天的[26, 28, 31, 37]放在最后四个,其中37固定在最后位置

        1    [7,8,9]     10
X1 = A(1,1) * A(2,2) * A(1,1)
1.1.3

  a为15,b为5/8,c1为7/17/18,c2为25,c1在c2前,d为30,总计5道

a b c1c2 d
X2 = A(4,4) * C(1,3)
1.1.4

  故总排列数为 sum = X1 * X2 = 6 * 6 * 2 * 3 = 144‬

1.2 组合数:

组合数为:

        5/8      7/17/18
sum = C(1,2) * C(1,3) = 6

1.3 小结:

  因为当前增加业务采用选择三种活动增加对应业务,但是十道题每道题有三种选择3*10=30,组合数却只有6,排列数也很小,

会导致当前所选活动类型很多次没有匹配,需要用户点击增加其他类型的活动,

组合数和排列数过小,这种情况发生的就会越频繁,第二个月类似。。

我们这时有三种选择:

  1. 告知用户选择其他活动(可能导致通知用户比较频繁)。
  2. 若所选类型业务没有符合条件的,直接增加的业务为符合条件的(但是用户会觉得疑惑,增加的和自己选的不一样)。
  3. 只给用户选择增加和撤销两个选项。

2.第二个月共有8笔必选业务(上限为10笔)

[26, 28, 30, 31, 33, 34, 36, 37]

1.1 排列数:

  1. 时间必须为最后一天的[26, 28, 31, 37]放在最后四个,其中37固定在最后位置。

总结

  目前比较推荐的方案是:

  1. 只给用户选择增加和撤销两个选项。
  2. 一次性生成全部业务,同时如果用户觉得生成的不好,可以重新生成(这一种更好,因为可选择性本来就很低,一次性生成还可以降低服务器设备压力)。

组合排列公式:

A(m,n) = n! / [(n - m )!]

C(m,n) = n! * / [m! * (n - m)!]

上一篇:37_高并发场景下的缓存+数据库双写不一致问题分析与解决方案设计


下一篇:vue开发请求本地模拟数据的配置方法(转)