如何在python中从php创建str_shuffle
注意,我不想使用蟒蛇洗牌,因为它使用Fisher-Yates 洗牌算法我想在php和 当种子(random.seed/srand)相同时使用python 我目前的代码是:如何在python中从php创建str_shuffle,php,python,arrays,Php,Python,Arrays,注意,我不想使用蟒蛇洗牌,因为它使用Fisher-Yates 洗牌算法我想在php和 当种子(random.seed/srand)相同时使用python 我目前的代码是: def PHP_shuffle(string): array = list(string) shuffled_array = [] arr_length = len(array) if(arr_length < 2): return array while(ar
def PHP_shuffle(string):
array = list(string)
shuffled_array = []
arr_length = len(array)
if(arr_length < 2):
return array
while(arr_length):
rand_key = array_keys(array[randint(0, arr_length)]
shuffled_array[rand_key] = array[rand_key]
del array[rand_key]
return shuffled_array
def PHP_shuffle(字符串):
数组=列表(字符串)
无序_数组=[]
arr_length=len(数组)
如果(arr_长度<2):
返回数组
while(arr_长度):
rand\u key=array\u key(数组[randint(0,arr\u长度)]
洗牌数组[随机密钥]=数组[随机密钥]
del数组[随机键]
返回洗牌数组
它不起作用,因为数组键不在python中,我想我需要以某种方式移植它。抛开
数组键的问题不谈,您是否验证了randint
在python和php中返回相同的数字,前提是它们具有相同的种子?在构建任何东西之前,可能值得仔细检查这个假设Python对randint
使用了Mersenne Twister算法。幸运的是,它在PHP上也可用,使用mt_rand()
而不是rand()。这至少应该为给定的种子提供相同的“随机”值!在Python 3中,获取一个版本字符串,在我运行Python 3.6.0的机器上,import random;random.seed('31337',version=1);print(random.randint(1,10))
prints 2。