需求大概是这样:一个砍价的,商品定价为 1000 元。要求 200-250 人砍完,别人帮你砍价的金额是依次递减的,并且是无规律(至少看不出)的随机数,请问怎么实现(本人使用 Java 语言)?
1
line 2016-11-29 22:00:38 +08:00
预先减好,不行吗?
|
2
woniu127 2016-11-29 22:02:12 +08:00
每次生成一个 4-5 的随机数不就行了
|
3
woniu127 2016-11-29 22:09:22 +08:00
给个 python 的,不会 java.
import random b = 1000 i = 0 while b>0: a = random.uniform(4, 5) b = b - a i = i+1 print(i) |
4
woniu127 2016-11-29 22:11:18 +08:00
好像看错了楼主的意思,我再想想
|
6
debiann 2016-11-29 22:31:19 +08:00 via iPhone
这随便选个递减函数,取点, smear 一下就行了吧。需要严格递减就每个点都判断下。怎么搞都可以啊
|
7
woniu127 2016-11-29 22:31:41 +08:00
这样应该可以了。
``` import random a = random.uniform(200,250) b = 1000/a d = [] for i in range(int(a/2)): c = random.uniform(0,2*b) e = 2*b-c d.append(c) d.append(e) d.append(1000-sum(d)) d.sort(reverse=True) print(d) print(sum(d)) ``` |
8
woniu127 2016-11-29 22:32:13 +08:00
回复似乎不支持 markdown
|
9
woniu127 2016-11-29 22:34:46 +08:00 1
我把循环这块空出来
import random a = random.uniform(200,250) b = 1000/a d = [] for i in range(int(a/2)): c = random.uniform(0,2*b) e = 2*b-c d.append(c) d.append(e) d.append(1000-sum(d)) d.sort(reverse=True) print(d) print(sum(d)) |
10
binux 2016-11-29 22:36:55 +08:00 4
plot (1000 + 100 * sin(x) )(1 - x / 200) from 0 to 250
|
15
binux 2016-11-29 23:19:32 +08:00
|
16
misaka20038numbe 2016-11-30 00:00:44 +08:00 3
商品 1000 元,每次大概砍 5%左右,200 次之后是 0.03 元,保证每次都比前一次砍的少.
|
17
bxb100 2016-11-30 08:14:50 +08:00 via Android
缩放的想法很赞
|