虽然说小鱼的点赞策略就是喜欢的点, 因为SP少点赞收益没有多少区别, 但是现在 @justyy 已经有超过1万的SP 了, 所以今天想了一下这么一个问题.
我们都知道, 一次100%点赞消耗能量 2%, 一天恢复20%的能量相当于一天中你可以点满10次. 那么问题就是, 假设30天时间内, 你一天点10次, 最大收益是多少?
为了简化分析模型, 我们假设1万SP能量全满点赞收益是1 SBD, 那么如果初始能量只有60%, 我们是不是需要等恢复了90%甚至是全满后再点这样效果会好一点呢?
我本来以为没啥区别, 直到今天晚上无聊随便写了段VBScript代码来分析, 结果让我很吃惊.
第一种策略, 从第一天就开始点满10次, 假设这10次都是一下子点完, 两次点赞间的能量恢复可以忽略不计, 那么我们可以用以下代码来模拟:
1 2 3 4 5 6 7 8 9 10 11 12 | Function Strategy1(ByVal sp, ByVal vp, ByVal days) income = 0 While days > 0 For i = 1 To 10 income = income + sp * vp / 10000 vp = vp - 0.02 Next vp = vp + 0.2 days = days - 1 Wend Strategy1 = income End Function |
Function Strategy1(ByVal sp, ByVal vp, ByVal days) income = 0 While days > 0 For i = 1 To 10 income = income + sp * vp / 10000 vp = vp - 0.02 Next vp = vp + 0.2 days = days - 1 Wend Strategy1 = income End Function
第二种策略, 多加了一个参数, 先休息几天, 恢复恢复能量, 然后再点.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | Function Strategy2(ByVal sp, ByVal vp, ByVal days, ByVal rest) days = days - rest vp = vp + 0.2 * rest ' 每天恢复20% If vp > 1 Then vp = 1 ' 能量最多恢复到100% End If income = 0 While days > 0 For i = 1 To 10 income = income + sp * vp / 10000 vp = vp - 0.02 Next vp = vp + 0.2 days = days - 1 Wend Strategy2 = income End Function |
Function Strategy2(ByVal sp, ByVal vp, ByVal days, ByVal rest) days = days - rest vp = vp + 0.2 * rest ' 每天恢复20% If vp > 1 Then vp = 1 ' 能量最多恢复到100% End If income = 0 While days > 0 For i = 1 To 10 income = income + sp * vp / 10000 vp = vp - 0.02 Next vp = vp + 0.2 days = days - 1 Wend Strategy2 = income End Function
我有1万SP, 那么假定这些值.
1 2 3 4 | steempower = 10000 votingpower = 0.6 daysofcuration = 30 restoredays = 2 |
steempower = 10000 votingpower = 0.6 daysofcuration = 30 restoredays = 2
跑一下程序看看结果:
1 2 3 4 5 | WScript.Echo ("Strategy 1 Max Income = " & Strategy1(steempower, votingpower, daysofcuration)) WScript.Echo ("Strategy 2 Max Income = " & Strategy2(steempower, votingpower, daysofcuration, restoredays)) Strategy 1 Max Income = 152.999999999999 Strategy 2 Max Income = 254.799999999999 |
WScript.Echo ("Strategy 1 Max Income = " & Strategy1(steempower, votingpower, daysofcuration)) WScript.Echo ("Strategy 2 Max Income = " & Strategy2(steempower, votingpower, daysofcuration, restoredays)) Strategy 1 Max Income = 152.999999999999 Strategy 2 Max Income = 254.799999999999
太意外了, 你的VP越低, 统计时间越长, 效果差别就越大, OMG, 还是先让机器人缓几天吧, 至少点赞比率先降一降, 等恢复了差不多了这样每天保持10次点赞 点完能量保持在80%左右, 这样是最优的.
错啦错啦 @tumutanzi 告诉我, 我的理解有问题, 2%的损失不是 vp = vp – 0.02 而是针对当前VP能量, 所以应该是vp = vp * 0.98.
程序更正一下, 每天可以点11次, 点10次能量满的话就会浪费:
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 | Function Strategy1(ByVal sp, ByVal vp, ByVal days) income = 0 While days > 0 For i = 1 To 11 income = income + sp * vp / 10000 vp = vp * 0.98 Next vp = vp + 0.2 If (vp > 1) Then vp = 1 End If days = days - 1 Wend Strategy1 = income End Function Function Strategy2(ByVal sp, ByVal vp, ByVal days, ByVal rest) days = days - rest vp = vp + 0.2 * rest If vp > 1 Then vp = 1 End If income = 0 While days > 0 For i = 1 To 11 income = income + sp * vp / 10000 vp = vp * 0.98 Next vp = vp + 0.2 If (vp > 1) Then vp = 1 End If days = days - 1 Wend Strategy2 = income End Function |
Function Strategy1(ByVal sp, ByVal vp, ByVal days) income = 0 While days > 0 For i = 1 To 11 income = income + sp * vp / 10000 vp = vp * 0.98 Next vp = vp + 0.2 If (vp > 1) Then vp = 1 End If days = days - 1 Wend Strategy1 = income End Function Function Strategy2(ByVal sp, ByVal vp, ByVal days, ByVal rest) days = days - rest vp = vp + 0.2 * rest If vp > 1 Then vp = 1 End If income = 0 While days > 0 For i = 1 To 11 income = income + sp * vp / 10000 vp = vp * 0.98 Next vp = vp + 0.2 If (vp > 1) Then vp = 1 End If days = days - 1 Wend Strategy2 = income End Function
假定以下值:
1 2 3 4 5 6 7 | steempower = 10000 votingpower = 0.6 daysofcuration = 30 restoredays = 2 WScript.Echo ("Strategy 1 Max Income = " & Strategy1(steempower, votingpower, daysofcuration)) WScript.Echo ("Strategy 2 Max Income = " & Strategy2(steempower, votingpower, daysofcuration, restoredays)) |
steempower = 10000 votingpower = 0.6 daysofcuration = 30 restoredays = 2 WScript.Echo ("Strategy 1 Max Income = " & Strategy1(steempower, votingpower, daysofcuration)) WScript.Echo ("Strategy 2 Max Income = " & Strategy2(steempower, votingpower, daysofcuration, restoredays))
这结果显示, 没啥区别, 不得不说, 这系统设计的真巧妙. 是我没弄清楚, 丢人了(捂脸)
1 2 | Strategy 1 Max Income = 279.67590316366 Strategy 2 Max Income = 278.976108950286 |
Strategy 1 Max Income = 279.67590316366 Strategy 2 Max Income = 278.976108950286
英文: Best Upvoting Strategy – SteemIt Voting Power Matters?
loading...
上一篇: R 教程之 STEEMIT 大鲸啥时候点赞的?
下一篇: 在英国整牙也不是件容易的事 - 说说分期付款在英国整牙的计划