bisect.bisect_left(nums, target)
贴一个笨方法:
import collections
import random
# 这是题目所给的rand1函数
def rand1():
return random.randint(0, 1)
# 实现1-4的随机函数
def rand4():
number1 = rand1() + 1
number2 = rand1()
while number2 == 1:
number2 = 2
return number1 + number2
# 根据rand4生成1-8的随机函数
def rand8():
number1 = rand4()
number2 = rand1()
while number2 == 1:
number2 = 4
return number1 + number2
# 根据rand8生成1-16的随机函数
def rand16():
"""
省略
"""
# 根据rand16生成1-32的随机函数
def rand32():
"""
省略
"""
"""
省略rand64(),rand128(),rand256(),rand512()
"""
# 根据rand512(),先拒绝采样,然后处理
def rand1000():
number1 = rand512()
while number1 > 500:
number1 = rand512()
number2 = rand1()
while number2 == 1:
number2 = 500
return number1 + number2
# 测试函数
ans = []
tar = 0
for _ in range(100000):
ans.append(rand32())
answer = collections.Counter(ans)
for _ in answer:
tar += 1
print(tar)
print(answer)
可以使用二进制先生成 9 位的二进制数,转换为十进制加一后,丢弃掉 500 以上的;然后再执行一次 rand 函数,生成的数加一后乘前面那个十进制数就行了,当然这里的乘也可以使用移位运算;
但是这个难点在于不知道如何设计拒绝采样,暂时想不出很好的思路
这个就是类似前几天力扣每日一题的 rand7 实现 rand10 吧
我就是先让他们给我代码,然后让他们给我权限
恒捷大佬说的没错,不试试怎么知道呢,鼓起勇气和 leader 或者开发 leader 提一下,能不能给开一下 reporter 权限,我感觉一般都会同意的吧
小公司,让开发给了我所有服务的 pull 权限,把好多服务的代码都看了,理了一下流程图;
现在新的需求上来写好测试用例之后就去看代码逻辑了;
数据库权限也有;
可能这就是小公司唯一的好处吧。。。
杭州的沙龙有报名渠道嘛