Бред


Ответить в тред Ответить в тред

Check this out!
<<
Назад | Вниз | Каталог | Обновить тред | Автообновление
93 7 21

Аноним 21/10/19 Пнд 04:55:43 2058726961
Photo on 2010-1[...].jpg (62Кб, 640x480)
640x480
Аноны , привет , недопрограммист вкатывается в бред , такая хуйня всю ночь сижу и думаю , как же решить задачу , нужно чтобы нарандомило число из 0,1,2 и при этом число должно состоять из одинакового число 0 и 2 , програмлю на питоне , спасайте анончики
import random
n=int(input())
for i in range (n) :
a=random.randint(0,2)
Аноним 21/10/19 Пнд 05:01:23 2058727702
>нужно чтобы нарандомило число из 0,1,2 и при этом число должно состоять из одинакового число 0 и 2 , програмлю на питоне , спасайте анончики

Че за высер, как это вообще понимать? питоноблядь не человек
Аноним 21/10/19 Пнд 05:03:51 2058728123
>>205872770
питончик-то норм, это блядина эта не человек
Аноним 21/10/19 Пнд 05:06:40 2058728504
Нужно чтобы выдало число длинны n блять , из чисел 0,1,2 и при этом состояло из одинакового числа нулей и двоек , т.е количество двоек в числе ровнялось количеству нулей
Аноним 21/10/19 Пнд 05:09:10 2058728785
Аноним 21/10/19 Пнд 05:12:08 2058729346
>>205872696 (OP)
>a=random.randint(0,2)
Ты на каждую итерацию а переопределяешь заново.
Сделай так
a = ""
....
a+=str(a=random.randint(0,2))

Так для начала хотя бы.
Аноним 21/10/19 Пнд 05:13:29 2058729587
>>205872934
>a+=str(random.randint(0,2))
Фу блядь, пофиксил.
Аноним 21/10/19 Пнд 05:15:35 2058729878
>>205872850
> количество двоек в числе ровнялось количеству нулей
То есть по сути сумма всех цифр в числе должна быть равна длине этого числа?
Аноним 21/10/19 Пнд 05:18:07 2058730159
>>205872987
Смотри , типа выдало число 1202 , а надо чтобы выдало 0202 или 11202 а надо 10202, ну по сути дела то да , хорошая мысль
Аноним 21/10/19 Пнд 05:19:08 20587304010
По условиям на ноль может начинаться?
Аноним 21/10/19 Пнд 05:21:11 20587306911
Аноним 21/10/19 Пнд 05:21:14 20587307112
>>205872850
Проходишь n итераций, первый раз берешь a=random.randint(0,2). потом каждый раз умножаешь число на 10 (что бы ноль прибавился) и добавляешь random.randint(0,2), при этом используешь алгоритм который анализирует кол-во двоек и нолей, и если одних больше то не random.randint(0,2) а + 0/2 тупой питоноблядок

Аноним 21/10/19 Пнд 05:23:13 20587309713
>>205873071
Хуевый у тебя какой-то рандом, если после каждой 2/0 будет 0/2
Аноним 21/10/19 Пнд 05:24:07 20587311514
>>205873071
Бля сложно пиздец , я просто чайник в этом
Аноним 21/10/19 Пнд 05:24:33 20587312015
>>205873097
Есть вариант получше? На каком этапе проверку проводить?
Аноним 21/10/19 Пнд 05:25:37 20587312916
>>205873115
Что непонятно? Попробую объяснить, могу даже питоноблядком не называть
Аноним 21/10/19 Пнд 05:28:25 20587316917
>>205873129
Алгоритм типа счетчика по остатку? и на счет последнего вот +0/2 не очень понятно
Аноним 21/10/19 Пнд 05:30:48 20587321018
>>205873097
Не, типа можно изъебнуться, и когда одно из чисел будет отставать не сразу вписывать его, а отложенно с некоторым шансом, и если после закрытия цикла суммы не сходятся начинать пересчет блаблабла но в сухом остатке что так псевдорандом что так.
Аноним 21/10/19 Пнд 05:33:47 20587326419
>>205873169
>Алгоритм типа счетчика по остатку?

Типа того, я сейчас в лигу играю, если надо потом напишу его, но лучше конечно сам.
Аноним 21/10/19 Пнд 05:35:04 20587328020
Сибог унижает питоноблядей итт

n = int(input())
d = 0
a = ""
for i in n:
t = random.randint(0,2)
d+=t
if(not i == d):
t == 2 if 0 else 2
a.append(t)

Надеюсь поймешь как расставить табы, а вообще был бы непротив увидеть версию покороче.
Аноним 21/10/19 Пнд 05:36:17 20587329821
>>205873069
А я думаю хуйня.
Короче в цикле делай if. Первым условием будет
if n = 0:
a+=random.randint(1,2)
Чтобы не с нуля начиналось.
потом как заметил этот господин >>205872987
>То есть по сути сумма всех цифр в числе должна быть равна длине этого числа?
Значит на единицы в целом похуй. Их не считаем.
Нужно ввести какой то count чтобы уравнивать кол-во двоек с нулями.

Ебала а не задача.
Учись ХТТП парсить, для этого Питон нужен, а не для единичек с ноликами.
Аноним 21/10/19 Пнд 05:38:50 20587332922
>>205873298
Да блять , лаба в ебанной шараге , вот сижу мучаюсь
Аноним 21/10/19 Пнд 05:40:02 20587334123
>>205873280
Тут ошибка, ща перепишу кабанчиком и скину рабочее
Аноним 21/10/19 Пнд 05:48:14 20587346524
>>205873210
У меня просто есть более ахуенная ебанутая идея. Сначала делим n на 2 и берем рандомное число в диапазоне от 0 до полученного числа - это будет количество 0/2 будем обозначать за х. Затем для каждой цифры запиливаем счетчик c1 = n-x, c0/c2 = x. Затем проходимся циклом по n и на каждой итерации берем рандом в диапазоне [0; c0 + c1 + c2] обозначим за y. Затем проходимся по ифам с проверкой, что полученное число принадлежит счетчику данного числа (y < c0/c1/c2). Если число принадлежит - прибавляем к итогу, вычитаем 1 из счетика и выходим из цикла, иначе вычитаем из y счетчик и переходим дальше.
Аноним 21/10/19 Пнд 05:51:23 20587351525
Аноним 21/10/19 Пнд 05:51:59 20587352126
>>205873465
Нормально так, но сомневаюсь что оп такое запилит в отличии от >>205873071
Аноним 21/10/19 Пнд 05:58:37 20587361527
>>205873465
Да , анончик , слишком сложно для моего узкого разума , надо что-то попроще и желательно с пояснениями действий , чтобы я мог полностью разобраться
Аноним 21/10/19 Пнд 05:59:09 20587362028
Аноним 21/10/19 Пнд 06:09:42 20587378829
Я ещё тут, делаю
Аноним 21/10/19 Пнд 06:11:04 20587380830
>>205873788
Жду , спасибо всем заранее за оказанную помощь , премного благодарен отцам сычевальни
Аноним 21/10/19 Пнд 06:25:47 20587403031
Ты тут? Я сделол.
Аноним 21/10/19 Пнд 06:26:48 20587404132
Аноним 21/10/19 Пнд 06:26:50 20587404333
изображение.png (9Кб, 273x449)
273x449
import random

n = int(input())
a = ""
d = 0
for i in range(n):
t = random.randint(0,2)
if i >= n-1-abs(d):
if d == 0:
t = 1
if d < 0:
t = 0
d+=1
if d > 0:
t = 2
d-=1
else:
if t == 2:
d-=1
if t == 0:
d+=1
a+=str(t)
print(a)
Аноним 21/10/19 Пнд 06:28:20 20587406734
C67BC87E-BE56-4[...].png (270Кб, 500x390)
500x390
Аноним 21/10/19 Пнд 06:29:33 20587408935
Кароч это долговая система, тут всего один счётчик — счётчик долга.
Если у нас рандомится 1, то долг не меняется, 1 ни на что не влияет.
Если рандомится 0, то мы должны 2, счётчик делает -1.
Если 2, то должны 0, долг растёт на 1.
Когда долг больше или равен оставшемуся количеству ходов, то мы его "выплачиваем", то есть потихоньку выводим то, что должны.
Аноним 21/10/19 Пнд 06:30:53 20587411236
Мне кажется дерево условий можно как-нибудь тернаркой пиздато сократить или формулами, но тут нагляднее.
Аноним 21/10/19 Пнд 06:34:32 20587418037
image.png (21Кб, 636x331)
636x331
сибоги, высрем короче?
Аноним 21/10/19 Пнд 06:36:27 20587420938
Аноним 21/10/19 Пнд 06:39:31 20587425939
Аноним 21/10/19 Пнд 06:41:03 20587428440
>>205874259
так, этого сеньёр-помидором делаем
Аноним 21/10/19 Пнд 06:47:33 20587438441
>>205874180
1.У тебя первая цифра всегда будет либо 1, либо 2, хотя она вполне может быть равна 0.
2. n = 1 вроде как онли 2 у тебя выводит
3. Ниппонел нахуя тебе присваивание в условии
Аноним 21/10/19 Пнд 06:47:47 20587438842
>>205874043
Спасибо анончик , если у кого будут еще интересные идеи возможно попроще . буду рад почитать , а мне пора в шарагу , надеюсь не проебусь
Аноним 21/10/19 Пнд 06:48:37 20587440643
>>205872696 (OP)
ебать ты аутисть документацию почитать по random не вариант или пиши свою библиотеку что бы такой хуйни не было
Аноним 21/10/19 Пнд 06:49:39 20587442144
>>205874384
2. при n = 1 будет 2 если f true, рандом если фолс, что тоже хуета
fix
Аноним 21/10/19 Пнд 06:50:45 20587444145
>>205874388
Проще только сразу напидорить n единичек.
Не за что, анончик. На здоровье.
Аноним 21/10/19 Пнд 06:51:13 20587444946
import numpy as np

n = 10
num_non_ones = n * 2 // 3
num_non_ones += n % 2
non_one_indexes = np.random.choice(range(n), num_non_ones, replace=False)
two_indexes = np.random.choice(non_one_indexes, num_non_ones // 2, replace = False)
res = np.ones(n, dtype=np.int8)
res[non_one_indexes] = 0
res[two_indexes] = 2
print(res)
Аноним 21/10/19 Пнд 06:51:47 20587445847
>>205874421
при n = 1 даже в цикл не зайдет же
Аноним 21/10/19 Пнд 06:53:15 20587448448
>>205874449

Сцук, проебался

num_non_ones += n % 2 надо заменить на num_non_ones += num_non_ones % 2
Аноним 21/10/19 Пнд 06:55:13 20587450949
>>205874449
крутой совет импортировать библиотеку numpy , человек скорее всего и в глаза её не видел
Аноним 21/10/19 Пнд 06:56:05 20587452050
>>205874458
Лол, в глаза долблюсь. Ну всё равно хуета выйдет.
>>205874509
Двочую
Аноним 21/10/19 Пнд 06:58:56 20587455851
>>205874509

Но ведь мы тут не человеку помогаем, а выёбываемся.
Аноним 21/10/19 Пнд 07:01:59 20587460352
6a3.gif (84Кб, 400x480)
400x480
Аноним 21/10/19 Пнд 07:04:40 20587464953
>>205874449
Хмммммм, 7 простых условий или ГиГаХуЙ хХх_8000хХх_ [kostyl]...
Аноним 21/10/19 Пнд 07:24:07 20587504954
пиздец конечно на дваче программеры.

читаем ТЗ:
"ужно чтобы нарандомило число из 0,1,2 и при этом число должно состоять из одинакового число 0 и 2"
"Нужно чтобы выдало число длинны n блять , из чисел 0,1,2 и при этом состояло из одинакового числа нулей и двоек , т.е количество двоек в числе ровнялось количеству нулей"

если всего N цифр, то единиц из них будет 0 <= M <= N.
соответствено,
m = random.randint(0,n)
потом хуярим строку из этого количества единичек, оставшееся делим поровну между 0 и 2. Если N-M нечетное, то вычитаем 1, чтобы делилось поровну (добавлять нельзя, иначе если M=0, вылетим из индексов):
ь = m = m if ((n-m) % 2 == 0) else m - 1
потом хуярим строку из M единичек и оставшееся двойки и нули поровну
str = '1' m + '0' ((n-m)/2) + '2' * ((n-m)/2)
И,блядь, магия ебучая, шаффлим ее:
print(''.join(random.sample(str, len(str))))

ВСЕ БЛЯДЬ, 4 ЕБАНЫХ СТРОЧКИ. Вы точно программисты а не ебаные дегенераты?

мимо девелопер с 11 годами коммерческого кодинга
Аноним 21/10/19 Пнд 07:27:10 20587510055
Аноним 21/10/19 Пнд 07:27:11 20587510156
>>205875049
ебаный парсер сожрал звездочки, вот быстрофикс

import random
n=int(input())
m = random.randint(0,n)
m = m if ((n-m) % 2 == 0) else m - 1
str = '1' ЗВЕЗДОЧКА m + '0' ЗВЕЗДОЧКА ((n-m)/2) + '2' ЗВЕЗДОЧКА ((n-m)/2)
print(''.join(random.sample(str, len(str))))

при этом я вообще ни разу на питоне не пишу, а пехопе кодер, над которыми двачеры смеются, блядь. Похоже, язык программирования к умению системно решать задачи отношения не имеет
Аноним 21/10/19 Пнд 07:31:49 20587519457
>>205875049
ну наконец-то настоящий кодер пришел, я уже заебался семенить и выебываться
Аноним 21/10/19 Пнд 07:32:01 20587520158
>>205875101
Да ебать, унизил каеш, я привык посимвольно обрабатывать в сишке, поэтому даже не думал в сторону шафла, сейчас больше на си пишу прост.

мимо оправдывающийся >>205874043
Аноним 21/10/19 Пнд 07:37:59 20587533659
>>205875201
ну ладно, я на самом деле не чисто пехопе кодер, а еще девопс и андроид девелопер, поэтому помимо пехопе еще и правлю чужую хуйню на руби и питоне, немного пишу на котлине, да и вообще начинал с паскаля и перла и джавы когда-то, так то я не сильно привязан к парадигмам, навязанным языком, и поэтому могу мыслить шире чем многие программеры, занимающиеся чем-то одним
Аноним 21/10/19 Пнд 07:40:13 20587539060
>>205875101

И моментально обосрался. m должно подчиняться нормальному распределению.
Аноним 21/10/19 Пнд 07:44:05 20587548461
>>205875390
ты скозал? в условиях задачи этого не было, еба.
Ну, если хочешь поменять тз - то достаточно поменять одну строчку, догадаешься как распределение поменять с [0;1) c матожиданием 0.5 на [0;1) с матожиданием 1/3 ?
Аноним 21/10/19 Пнд 07:45:51 20587553562
>>205875336
Так-то кстати моё решение наибыстрейшее, твой шафл по факту дохуя времени занимает. Хоть какое-то утешение.
Аноним 21/10/19 Пнд 07:49:15 20587561163
>>205875390
оп написал что должен быть рандом, а не равномерно распределенный рандом. А так-то это рандом, т.к. запустить программу кучу раз, то будут выведены все возможные варианты
Аноним 21/10/19 Пнд 07:52:44 20587568264
>>205875535
возможно, я прикладной программист, мне настрать на o(n2) всякие, пока это реально работает за приемлемое время
$ time python 1.py <<< 1000 > /dev/null
real 0m0.038s
user 0m0.028s
sys 0m0.009s
$ time python 1.py <<< 100000 > /dev/null
real 0m0.152s
user 0m0.140s
sys 0m0.012s
$ time python 1.py <<< 1000000 > /dev/null
real 0m0.803s
user 0m0.774s
sys 0m0.027s

строки до миллиона знаков меньше чем за секунду хуярит - опу норм, можешь свое попрофайлить
Аноним 21/10/19 Пнд 07:54:26 20587571665
>>205875682
Я не на никсе, писал на онлайн компиляторе, мой код итт, попрофайль сам если можешь
Аноним 21/10/19 Пнд 07:54:58 20587572466
Аноним 21/10/19 Пнд 07:56:24 20587575067
>>205875535
>>205875682
ну и кстати здесь видно, что оно за O(n) делает, у тебя цикл, так что тоже должно быть O(n). Различие может быть только в том, сколько 1 итерация цикла выполняется, и что-то мне подсказывает, что цикл в шафле быстрее, чем рандом каждую итерацию.
Аноним 21/10/19 Пнд 07:58:57 20587581868
изображение.png (38Кб, 434x327)
434x327
>>205875750
НУ И ЛАДНА!

На самом деле шафл не такой и простой, ты же делаешь рандом и замену. А я делаю только рандом. Хз, профайльни если не лень, мне уже самому интересно, я на сперме, не могу.
Аноним 21/10/19 Пнд 08:01:18 20587586369
Охуел с дегенератов итт, а потом такие на собес приходят. Один >>205875049-кун луч света в темном царстве, остальные вообще тз прочесть не осилили.
Аноним 21/10/19 Пнд 08:16:45 20587622670
>>205875484
ну еба - для тупых тупой вариант (питон 2, если 3 то сам гугли как там редьюс делать)
functools.reduce(lambda acc, a: acc + (1 if random.randint(0, a) < random.randint(0,n/3) else 0), range(0,n), 0)
Аноним 21/10/19 Пнд 08:23:56 20587640371
Аноним 21/10/19 Пнд 08:46:12 20587704772
>>205876403
Аутист не осилил понять, что в задаче всего 2 рандомных параметра: длина строки и число единиц, вдобавок вместо перемешивания готовых значений запилил алгоритм с непредсказуемой сложностью.
Аноним 21/10/19 Пнд 08:51:01 20587717573
>>205876226
вот питон 3
sum([0 if random.uniform(0,n)>n/3.0 else 1 for i in range(0,n)])
Аноним 21/10/19 Пнд 09:00:56 20587751874
>>205875818
вот на том же компе, на миллионе цифр твоя в 4 раза медленней
$ time python 2.py <<< 1000 > /dev/null

real 0m0.036s
user 0m0.022s
sys 0m0.013s

$ time python 2.py <<< 100000 > /dev/null
real 0m0.303s
user 0m0.292s
sys 0m0.010s

$ time python 2.py <<< 1000000 > /dev/null
real 0m3.101s
user 0m3.053s
sys 0m0.046s
Аноним 21/10/19 Пнд 09:15:16 20587800775
>>205876226
> не знает, что такое нормальное распределение
> складывает по единичке
> СМОТРИ МАМ, Я ФУНКЦИОНАЛЬЩИК
> токсичность во все поля

Вся суть пхп макак.
Аноним 21/10/19 Пнд 09:30:38 20587861176
>>205878007
ну, расскажи же, что такое нормальное распределение на дискретном пространстве, я послушаю. Заодно прочитай что такое метод Монте Карло, я как раз для тупых решение сделал им.
Аноним 21/10/19 Пнд 09:41:19 20587898777
image.png (8Кб, 503x316)
503x316
>>205878007
вот смотри:

import random

n=10
a = [0]*n
for i in range(0,10000):
a[(sum([0 if random.uniform(0,n)>n/3.0 else 1 for i in range(0,n)]))] += 1

print(a)

[168, 883, 1969, 2538, 2273, 1385, 586, 152, 40, 6]

достаточно нормально для тебя, Гаусс?
21/10/19 Пнд 09:45:05 20587911278
Пиздец братан, ты мало того, что в банальную задачу не можешь, так ещё и пишешь как умственноотсталый
Аноним 21/10/19 Пнд 09:50:03 20587929879
>>205875101
Неправильное решение. Собственно, что ожидать от тупой макаки на языке для петухов.

- Распределение чисел не нормальное, что не является рандомом.
- Некоторые числа будут с нуля начинаться, что полный бред, так как для числа длинной 5, у тебя в итоге может выйти 00221, что в итоге 221, а это нихуя не число длинной 5 цифр. В задаче разговор про числа, а не про строки.
- Шафл медленное говно. Нахуй шафл, если всё проще решается.
- Ну и с разметкой на дваче ты обосрался. Лан, расскажу секрет, можно юзуть pastebin.
Аноним 21/10/19 Пнд 09:56:09 20587952480
>>205879298
>pаспределение чисел не нормальное, что не является рандомом.
Ты скозал? Случайные числа не обязаны быть нормально распределенными. Задумайся над названием "нормальное распределение случайной величины" и подумай, может ли случайная величина быть распределена не нормально. Подсказка - может, "случайная величина" это не то же самое что "случайная величина с нормальным распределением".
В ТЗ про нормальное распределение не написано.
Впрочем, если нужно нормалньое распределение - вон выше я написал изменение, слепушара.
> Некоторые числа будут с нуля начинаться
ты долбоебушка, оп сам написал, что с 0 может начинаться, читай внимательней ТЗ.
> Шафл медленное говно
ну охуеть вообще. Все, пишем на ассемблере теперь, сука, int 13h
> Ну и с разметкой на дваче ты обосрался
да, вот такой я хуевый программист
Аноним 21/10/19 Пнд 09:59:53 20587968381
Да
Аноним 21/10/19 Пнд 10:02:18 20587976682
Вы что ебанулись. Вот вам алгоритм: Рандомим число 1 или 2, потом генерируем массив вида 000000222222 длиной n-1 в зависимости от первого числа и четности (n-1), так чтобы было одинаковое количество двоек и нулей.
Потом перемешиваем этот массив, конкатенируем его с первым числом и выдаем ответ. Хули сложного
Аноним 21/10/19 Пнд 10:04:26 20587984083
>>205879766
Еще нужно добавить еденичку в массив если первое число 1 а n-1 нечетное
Аноним 21/10/19 Пнд 10:07:13 20587996784
Аноним 21/10/19 Пнд 10:11:07 20588013085
>>205879766
ты еблан? У тебя всегда 1-2 еденички будет, это не рандом
Аноним 21/10/19 Пнд 10:15:30 20588034586
>>205880130
ну, строго говоря - случайное число это то, которое нельзя предсказать. Так что он даже усложнил, элементарный вариант был бы взять например первую цифру 0 или 2 рандомом, вторую - 2 или 0 в зависимости от первой, а потом n-2 единичек. Получится либо
02111
либо
20111
какое следующее число выпадет из этих двух - неизвестно, так что это случайные числа.
Аноним 21/10/19 Пнд 10:20:19 20588056787
>>205879524
>ты долбоебушка, оп сам написал, что с 0 может начинаться, читай внимательней ТЗ.
Это писал какой-то хуй. Галки ОПа нет. Я ему не верю.
Если допустить. что это был ОП, проебавший галку, то числа начинающиеся на ноль, это как вообще? Это уже не число, а строка. Тогда задача не имеет смысла, надо уточнять ТЗ.

>случайная величина с нормальным распределением
Лан, ок. Давай другой термин использую, вижу ты прикопался к нормальному распределению Гауса. На примире попробую объяснить. Вот, если ты возьмёшь числа подходящие под условия задачи из трёх цифр, это будут:
111
102
120
201
210

По идее, ежели у нас рандом, при многократном запуске кода каждое из этих чисел должно выпасть одинаковое количество раз. Это рандом, случайность.

Допустим, мы прогоним алгоритм 2400 раз. Числа будут примерно такие:
111 - 480
102 - 480
120 - 480
201 - 480
210 - 480

А в твоём алгоритме будут такие числа и такая частота выпадения:
111 - 1200
102 - 200
120 - 200
201 - 200
210 - 200
012 - 200
021 - 200

Нихуя се рандом, в половине случаев 111.

Кстати, ОП-dick, не указал, обязаны ли 0 и 2 присутствовать в числе или нет, это тоже важно.
Аноним 21/10/19 Пнд 10:31:53 20588112888
>>205880567
Дополню, что, даже не смотря на то, что я кодмакака, пока ОП не придёт, не напишет нормальные условия задачи и не скажет, что готов рассмотреть решение на нормальном языке JavaScript azaza, писать я это конечно же не буду.
Аноним 21/10/19 Пнд 10:41:23 20588159989
>>205880567
> По идее, ежели у нас рандом, при многократном запуске кода каждое из этих чисел должно выпасть одинаковое количество раз.
нет. Единственное определение случайной величины - ее нельзя предсказать, она не зависит от предыдущих значений.

еще раз, я сделал там вариант с нормальным распределением, смотри выше
Аноним 21/10/19 Пнд 10:52:38 20588212990
>>205881599
А, тогда хули париться. На конце просто случайным образом выбирает 02 или 20 и получаем рандом. В условиях же не написано.

function randomHuiandom(length) {
if (length === 1) return '1';
let result = Math.random() > 0.5 ? '20' : '02';
for (let i = 0; i < length - 2; i++) result = '1' + result;
return result;
}
Аноним 21/10/19 Пнд 10:59:45 20588243991
>>205882129
Ебать ты макака. Мое увожение.
Аноним 21/10/19 Пнд 10:59:58 20588244692
>>205880567
ну и это, ты вообще какую-то хуйню считаешь - речь шла о нормальном распределении количества единичек в числе. В моем первом варианте это значение равномерно распределено на промежутке 0,n с матожиданием n/2. Для того, чтобы функция плотности распределения (ты говоришь о плотности, оперируй нормальными математическими терминами) чисел была линейной p=1/n, т.е. каджое из n чисел выпало 1/n раз при n->оо, количество каждой из цифр должно быть нормально распределено на промежутке 0,n с матожиданем 1/k, где k - количество цифр. Поэтому числа в моем первом решении не распределены равномерно, т.к. количество единичек имеет матожидание 1/2, а не 1/3. Если ты поднимешь свои глаза, то найдешь коммент, где я сказал, на что заменить строчку m = ..., чтобы сделать матожидание 1/3.
Аноним 21/10/19 Пнд 11:08:54 20588283493
>>205880567
вот запустил мой вариант, который выше с нормальным распределением, число можно начинаться с 0, 70000 итераций:
import random
n=3
a={}

sample_size = 70000

while sample_size > 0:
m = sum([0 if random.uniform(0,n-1)>n/3.0 else 1 for i in range(0,n)])
if m == 0:
continue
m = m if ((n-m) % 2 == 0) else m - 1
str = '1' m + '0' ((n-m)/2) + '2' * ((n-m)/2)
str = ''.join(random.sample(str, len(str)))
if not str in a:
a[str] = 1
else:
a[str] += 1
sample_size -= 1
print(a)

$ python 1.py
{'201': 10043, '210': 9954, '120': 9958, '012': 10144, '111': 9828, '102': 9966, '021': 10107}

достаточно равномерно тебе теперь?
Аноним 21/10/19 Пнд 11:14:26 20588307794
>>205882834
Ну, всё. Красава, мне больше не до чего доебаться. Пойду своё говно делать.
Настройки X
Ответить в тред X
15000 [S]
Макс объем: 20Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
X
Ваш шидевор X
Стикеры X
Избранное / Топ тредов