Как мне создать str_shuffle из php в python

Note I don't want to use pythons shuffle as that uses the Fisher-Yates Shuffle algorithm I want to get the same result on both php and python when the seed (random.seed/srand) is the same

Мой текущий код:

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

Это не работает, потому что array_keys не находится в python, я думаю, мне нужно как-то его перенести.

Если оставить в стороне проблему array_keys, проверили ли вы, что randint возвращает одно и то же число как в Python, так и в php, при условии, что они имеют одно и то же начальное число? Вероятно, стоит дважды проверить это предположение, прежде чем строить что-либо на его основе.

Kevin 28.06.2018 21:41

Python использовал алгоритм Mersenne Twister для randint. К счастью, он также доступен на PHP с использованием mt_rand() вместо rand (). Это должно, по крайней мере, дать вам те же «случайные» значения для данного семени!

HolyDanna 28.06.2018 22:15

В Python 3 seed принимает строку версии, а на моем компьютере с Python 3.6.0 import random; random.seed('31337', version=1); print(random.randint(1,10)) печатает 2.

PM 2Ring 28.06.2018 23:03
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
3
74
0

Другие вопросы по теме