首页   注册   登录
 stevenkang 最近的时间轴更新

stevenkang

V2EX 第 122674 号会员,加入于 2015-06-17 09:38:13 +08:00
MySQL 5.6 排序数据丢失的诡异现象
MySQL  •  stevenkang  •  269 天前  •  最后回复来自 Ravenddd
12
HTTPS(DigiCert) + CDN(阿里云)疑似被挟持,山东地区受影响
SSL  •  stevenkang  •  2018-01-10 14:10:07 PM  •  最后回复来自 namebus
1
中国移动太贱了, https 都能挟持
SSL  •  stevenkang  •  2017-12-14 21:48:02 PM  •  最后回复来自 lslqtz
25
如何评价阿里巴巴公布《阿里巴巴 Java 开发手册》?
Java  •  stevenkang  •  2017-02-17 09:29:37 AM  •  最后回复来自 stevenkang
72
分享一个自用的 maven 镜像
Java  •  stevenkang  •  2016-11-12 07:56:45 AM  •  最后回复来自 zhidian
3
www.yundun.com 你们能打开吗?
服务器  •  stevenkang  •  2016-06-04 23:01:07 PM  •  最后回复来自 shiinamayuri
2
想找一个开发文档汉化小组,不知道有这方面的没
翻译  •  stevenkang  •  2016-10-28 10:27:28 AM  •  最后回复来自 xiqingongzi
1
stevenkang 最近回复了
借呗,金条,小米金融,百度钱包,网商贷,360 借条,海尔消费金融,万达消费金融,哈尔滨银行消费贷,拉卡拉,信用卡。各种借钱方式,要不我邀请你下载?
之前写的一个砍价算法,和你这个需求应该类似。可调参数:先高后低还是先低后高,以及温和还是刺激(根据参与随机比例来实现)

```java
public static void main(String[] args) {
BigDecimal total = new BigDecimal(100.00);
BigDecimal current = new BigDecimal(0.00);
int totalPersonal = 10;
int currentPersonal = 0;
for (int i=0; i<totalPersonal; i++) {
BigDecimal amount = exec(total, current, totalPersonal, currentPersonal, 2.0, 0.2);
current = current.add(amount);
currentPersonal++;
System.out.println("当前砍价:" + amount + ",剩余金额:" + (total.subtract(current)) + ",剩余次数:" + (totalPersonal-currentPersonal));
}
}

/***
* 砍价金额计算程序,可通过 adjust 调整分配比例,越小前期砍价金额越小,越大前期砍价金额越大<br>
* 0.5 表示均衡砍价。<br>
* stable 稳定参数表示每次砍价参与随机的份额,越小越稳定。0.3 表示砍价的 30% 金额随机,其他固定。<br>
* 刚开始砍的金额高,后面低,推荐配置:adjust = 2.0、stable = 0.8
* 刚开始砍的金额低,后面高,推荐配置:adjust = 0.5、stable = 0.8
* @param total 总价
* @param current 已砍金额
* @param totalPersonal 总人数
* @param currentPersonal 已砍人数
* @param adjust 调整值,0.5-2.0
* @param stable 稳定值,0.0-1.0
* @return 本次砍价金额
*/
public static BigDecimal exec(BigDecimal total, BigDecimal current, int totalPersonal, int currentPersonal, double adjust, double stable) {
double dTotal = total.setScale(20, RoundingMode.HALF_UP).doubleValue();
double dCurrent = current.setScale(20, RoundingMode.HALF_UP).doubleValue();
// 计算平均砍价金额
double avgAmount = dTotal / totalPersonal;
// 初始调整值
double initAdjust = adjust;
// 总调整值为 1 除以初始调整值于初始调整值的差值
double totalAdjust = 2 - initAdjust * 2;

// 每次调整值为差值除以总人数减一
double perAdjust = totalAdjust / totalPersonal;


// 本次砍价金额
double amount;
if (currentPersonal > 0 && currentPersonal < totalPersonal-1) {
// 渐变算法调整计算
double adjustBigDecimal = initAdjust + perAdjust * currentPersonal;
amount = Math.random() * avgAmount * adjustBigDecimal * 2 * stable + avgAmount * (1-stable);
} else if (currentPersonal == 0) {
// 首次砍价使用初始调整值计算
amount = Math.random() * avgAmount * initAdjust * 2 * stable + avgAmount * (1-stable);
} else {
// 最后砍价使用剩余金额
amount = dTotal - dCurrent;
}
// 本次砍价后剩余金额
BigDecimal bigAmount = new BigDecimal(amount).setScale(2, RoundingMode.HALF_UP);
BigDecimal afterAmount = total.subtract(current).setScale(2, RoundingMode.HALF_UP);
afterAmount = afterAmount.subtract(bigAmount).setScale(2, RoundingMode.HALF_UP);
// 剩余砍价次数以及保障金额
BigDecimal afterMinAmount = new BigDecimal(0.01F * (totalPersonal-currentPersonal-1)).setScale(2, RoundingMode.HALF_UP);
if (afterAmount.compareTo(afterMinAmount) < 0) {
bigAmount = new BigDecimal(0.01F).setScale(2, RoundingMode.HALF_UP);
}
// 最低一分钱
if (bigAmount.compareTo(BigDecimal.ZERO) <= 0) {
bigAmount = new BigDecimal(0.01F).setScale(2, RoundingMode.HALF_UP);
}

return bigAmount;
}
```

效果图( 100 元,10 个人参与)
![]( https://img.xiaoi.me/pms-upload/20190122/5e7f3e86-199d-be8e-fe26-c6d0905a8aae.png)
59 天前
回复了 gzf6 创建的主题 程序员 REST API 安全问题
所有只读操作均用 GET 请求,例如获取 ID 为 1 的用户数据 GET /user/1,
所有写入操作均用 POST 请求,例如修改 ID 为 1 的用户数据 POST /user/1,

GET、POST、PUT、DELETE 简化为 GET / POST 读写操作就完事。
内网穿透 ngrok 了解一下:tool.4kb.cn ,个人服务器,流量有限,请勿大流量使用:例如开游戏服之类的
241 天前
回复了 nvhanzhi 创建的主题 MySQL 网站数据库经常挂,小白求助!
为什么不直接用云虚拟主机或者弹性 Web 托管,数据库、PHP 环境都搭好了,wordpress 直接跑就行了
241 天前
回复了 yao990 创建的主题 程序员 话说,有没有分布式无中心聊天工具?
写........信?
270 天前
回复了 stevenkang 创建的主题 MySQL MySQL 5.6 排序数据丢失的诡异现象
@GTim 软件是 navicat for mysql。数据量少的情况下确实可以用应用层来解决,这里数据比较多。

@Troevil asc 排序没有这个问题。如果 order by 两个字段的话,会导致索引失效,这里比较麻烦。
@thread2 看来这个 BUG 一直在呀,只有用别的办法解决了

@yangqi 现在解决方案就是 date + id 一起排序,唯一缺点是会导致索引失效,真是蛋疼啊。
2017-12-14 17:13:48 +08:00
回复了 stevenkang 创建的主题 SSL 中国移动太贱了, https 都能挟持
@LeungJZ 肯定说的有道理,不过我给出了链接,自行测试之后可以排除这种可能。只有开发才会命名的 bundle.js 文件有可能是山东青岛移动在弄挟持的时候他们那边开发人员命名的。

这里强调一下呀,我们 CDN 上面的所有文件只会新增,不会修改和删除的。
2017-12-14 16:48:44 +08:00
回复了 stevenkang 创建的主题 SSL 中国移动太贱了, https 都能挟持
@hgc81538 有这种可能,出问题的几乎都是 android 手机,目前没有收到 iOS 系统的遇到问题,可能客户手机上安装了别的什么软件
关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   794 人在线   最高记录 4385   ·  
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.3 · 19ms · UTC 22:20 · PVG 06:20 · LAX 15:20 · JFK 18:20
♥ Do have faith in what you're doing.
沪ICP备16043287号-1