如何在按降序排序的列表上使用bisect模块?例如.
import bisect
x = [1.0,2.0,3.0,4.0] # normal, ascending
bisect.insort(x,2.5) # --> x is [1.0, 2.0, 2.5, 3.0, 4.0] ok, works fine for ascending list
# however
x = [1.0,2.0,3.0,4.0]
x.reverse() # --> x is [4.0, 3.0, 2.0, 1.0] descending list
bisect.insort(x,2.5) # --> x is [4.0, 3.0, 2.0, 1.0, 2.5] 2.5 at end, not what I want really
Run Code Online (Sandbox Code Playgroud)
唯一的方法是insort(insort_right)或insort_left - 这些方法都不适用于我.有什么建议?谢谢
strchrC标准库中的函数在char字符串中查找a ,但其签名需要int搜索字符.在我发现的这两个实现中,实现将其转换int为char:
char *strchr(const char *s, int c) {
while (*s != (char)c)
if (!*s++)
return 0;
return (char *)s;
}
char *strchr(const char *s, int c) {
while (*s && *s != (char)c)
s++;
if (*s == c)
return (char *)s;
return NULL;
}
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么?为什么不把a char作为参数呢?
计算200个硬币翻转中最长的头部和尾部序列.
我这样做了 - 在python中有没有更快的方法呢?(没有太混淆)
import random
def toss(n):
count = [0,0]
longest = [0,0]
for i in xrange(n):
coinface = random.randrange(2)
count[coinface] += 1
count[not coinface] = 0
if count[coinface] > longest[coinface]:
longest[coinface] = count[coinface]
#print coinface, count, longest
print "longest sequence heads %d, tails %d" %tuple(longest)
if __name__ == '__main__':
toss(200)
Run Code Online (Sandbox Code Playgroud)
看到这是为了促使我的演奏
在遗传算法中,当使用轮盘选择方法选择交叉成员时,群体是否首先需要按健康等级排序?
可能性似乎是:
我认为以任何一种方式排序可能没有效果 - 在包含不同尺寸(通过适应性)切片的轮子上随机地着陆卵石将具有完全相同的结果机会,无论更大的切片是否被组合在一起.但我并不是100%相信.
你怎么看?
每一代做一次排序的需要也会影响算法的速度,所以我不愿意(如果使用精英主义,我会做一个排序,但我不是在这种情况下).谢谢,如果你知道,因为我无法通过谷歌等找到明确的答案..