Генерация случайного числа, исключая диапазон

Вы забыли заключить запрос в кавычки. Следующий код должен работать отлично:

import pandas
import pymysql

connection = pymysql.connect(host='localhost', user='root', password='123456', database='sakila')

cursor=connection.cursor()

insert_query= "INSERT INTO film_text (film_id, title, description) VALUES ('1001','ZZZ ZORRO','Zorro must Fight a Womanizer in Berlin');"

cursor.execute(insert_query)
6
задан Goran 12 October 2008 в 20:09
поделиться

5 ответов

(b) Используйте единственный диапазон и отобразитесь на позволенные значения.

(a) Медленнее, и время выполнения недетерминировано, потому что необходимо ожидать, пока Вы не получаете число в правильном диапазоне. Если бы необходимо было пропустить большой спектр, то Вы были бы политы из шланга.

(c) Более сложно, чем (b); не добавляйте сложность, если она не требуется.

8
ответ дан 9 December 2019 в 22:42
поделиться

Я обычно использую технику, описанную маркером номер два выше, особенно если набор допустимых чисел является довольно маленьким. Со статистической точки зрения это - путь к легкому, чтобы или разрушить случайность результатов или скосить результаты далеко от плоского распределения.

Это имеет добавленное преимущество разрешения единственного выбора (как имеющие дело карты или выбор шаров бинго)... Вы просто удаляете уже выбранные значения из карты.

1
ответ дан 9 December 2019 в 22:42
поделиться

Это зависело бы от того, как многие/большие диапазоны исключения. Тестирование на запрещенный диапазон (Ваша опция 1) хорошо работало бы для маленьких наборов; никакая потребность усложнить решение легкой проблемы. Решение 3 работало бы лучше на более многочисленные наборы исключения. Решением 2 является большая часть работы, но вероятно самое корректное теоретическое решение.

1
ответ дан 9 December 2019 в 22:42
поделиться

Отобразите их на общее количество диапазонов, которые Вы ожидаете. затем распределите их между диапазонами.

Например, если Вам нужно случайное между 0.. 10 и 100.. 110

Генерируйте случайное число между 20. Более низкие 10 присвоены 0.. 10 диапазонов, остальные к другому интервалу (или что-то как этот - я могу быть выключен одним.. Арифметика интервала является одной из этих вещей, в которых я никогда не разбираюсь на первой попытке).

Причина позади этого состоит в том, что Вы часто имеете дело с не идеальные случайные генераторы. Они начинают вести себя странные, если Вы распределяете последовательные переменные случайного числа по нескольким размерам (например, сначала выберите случайный интервал, затем выберите случайную внутреннюю часть выбранный интервал). Это может привести к очень очевидному неслучайному поведению.

Если Вы запускаете с лучшего генератора случайных чисел, который добирается, это - данные из истинных случайных источников, можно закончить тем, что тратили впустую драгоценные случайные биты. Если Вы делаете это только один раз во второй, это не может быть проблема. Если Вы делаете это к часто, хотя Вы программируете, мог бы быть остановлен, потому что чистые случайные источники должны догнать Ваше случайно-разрядное, используют.

1
ответ дан 9 December 2019 в 22:42
поделиться

Это кажется, что Ваш алгоритм может извлечь выгоду из небольшой модернизации, которая сделает создание случайных чисел неявным вместо того, чтобы явно найти их использующий генератор случайных чисел.

Например, если Вы хотите заставить случайную последовательность чисел от 1 до 10, лучше начинать с упорядоченного ряда, смешивать его некоторым способом, например, через свопинг (был вопрос об этом, я думаю), и возьмите числа один за другим.

0
ответ дан 9 December 2019 в 22:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: