一件商品原价 10 元,用户可以输入任意 10 元以内价格进行讲价,根据算法判定是否讲价成功。
已知商品设置了最低价 5 元,如果用户输入的价格在 5 元以下,不会成功,在 5 元以上,那么几率就是离 5 元越近,几率越低,反之几率越大。
算法渣想了很久没想明白,希望各位能给个建议指导一下,谢谢大家了!
1
BreadKiller 2020-08-04 10:50:23 +08:00 1
orginPrice = 10;
minPrice = 5; input = 0; chance = (input - minPrice) / (orginPrice - minPrice) 再加一些大小判断一下就好了 |
2
binux 2020-08-04 10:56:16 +08:00 via Android
你需要一条概率曲线,否则直接线性就完了
|
3
shpkng 2020-08-04 10:59:24 +08:00
怎么觉得这就是个初中的问题
|
4
Dcynsd OP |
5
tfdetang 2020-08-04 11:12:32 +08:00
if randint(5, 10) =< userinput:
return True else: return False |
6
xiri 2020-08-04 11:15:34 +08:00
这,,,有什么复杂的地方吗?
没有什么其他要求的话直接线性怼上去:y=(x-5)/(10-5),x 是输入的价格,y 是机率 在加些定义域,分一下段:x 取(0,5]的时候 y=0,x 取(5,10]的时候 y=x/5 -1 |
7
noqwerty 2020-08-04 11:15:42 +08:00
没有其他限制条件的话你的 pdf 直接用 (5, 0) 到 (10, 0.4) 的一条直线不就行了
|
8
GrayXu 2020-08-04 11:42:37 +08:00 via Android
高中没学过基础的概率吗。。。。
|