Распределение цифр в волшебных числах N!

топ 100 блогов termometr26.11.2016 Написал программку на Вольфраме по проверке гипотезы равномерности распределения заданной цифры в дроби. Если не лоханулся в коде, то не такой я уж и дурак.


In[1720]:= (* Извлечение нужного знака из числа и - Распределение цифр в волшебных
числах N! *) ;
ClearAll[ "Global`*" ] (* стартовая зачистка всех переменных *)

Fun41[x_, ns_] := RealDigits[x, 10, 1, -ns][[1, 1]] (*Извлечение нужного знака из числа - The best*)

FRound[x_, ns_] := Round[x*10^ns]/10^ns

Ns = 3; (* позиция цифры в числе *)
"=========================";
{ A = RandomReal[], RealDigits[A] ,
RealDigits[A, 10, 1, -Ns] } ; (* тест *)
"=========================";
N1 = 6; (* аргумент факториала *)
{ N1, Nmax = Factorial[N1] , PrimeQ[Nmax], Nmax1 = (Nmax - 1) ,
PrimeQ[Nmax1] }

NmaxX = Nmax + 1 ; (* тестируемый знаменатель *)

" C округлением "
NN = 0 ;
P10 = Table[0, {i, 10}] ;
Do[{NN = NN + 1, Pr = FRound[NN/NmaxX, Ns] (* Pr=FRound[NN/NmaxX,
Ns] , Pr=NN/NmaxX *), Dgt = Fun41[Pr, Ns],
Do[ P10[[n + 1]] = P10[[n + 1]] + If[Dgt == n, 1, 0], {n, 0, 9,
1}] }, {m, 1, NmaxX, 1}]

P11 = P10/NmaxX
N[P11, 3]

{NmaxX, NmaxX == NN, NmaxX == Sum[P10[[i]], {i, 10}] }

NmaxX = Nmax ; (* тестируемый знаменатель *)

" C округлением "
NN = 0 ;
P10 = Table[0, {i, 10}] ;
Do[{NN = NN + 1, Pr = FRound[NN/NmaxX, Ns] , Dgt = Fun41[Pr, Ns],
Do[ P10[[n + 1]] = P10[[n + 1]] + If[Dgt == n, 1, 0], {n, 0, 9,
1}] }, {m, 1, NmaxX, 1}]

P11 = P10/NmaxX
N[P11, 3]

{NmaxX, NmaxX == NN, NmaxX == Sum[P10[[i]], {i, 10}] }

" Без округления "
NN = 0 ;
P10 = Table[0, {i, 10}] ;
Do[{NN = NN + 1, Pr = NN/NmaxX , Dgt = Fun41[Pr, Ns],
Do[ P10[[n + 1]] = P10[[n + 1]] + If[Dgt == n, 1, 0], {n, 0, 9,
1}] }, {m, 1, NmaxX, 1}]

P11 = P10/NmaxX
N[P11, 3]

{NmaxX, NmaxX == NN, NmaxX == Sum[P10[[i]], {i, 10}] }

"EOF";


Out[1728]= {6, 720, False, 719, True}

Out[1729]= " C округлением "

Out[1733]= {73/721, 72/721, 72/721, 72/721, 72/721, 72/721, 72/721, \
72/721, 72/721, 72/721}

Out[1734]= {0.101, 0.0999, 0.0999, 0.0999, 0.0999, 0.0999, 0.0999, \
0.0999, 0.0999, 0.0999}

Out[1735]= {721, True, True}

Out[1736]= " C округлением "

Out[1740]= {1/12, 1/9, 1/9, 1/12, 1/9, 1/12, 1/9, 1/12, 1/9, 1/9}

Out[1741]= {0.0833, 0.111, 0.111, 0.0833, 0.111, 0.0833, 0.111, \
0.0833, 0.111, 0.111}

Out[1742]= {720, True, True}

Out[1743]= " Без округления "

Out[1747]= {1/9, 1/9, 1/12, 1/9, 1/12, 1/9, 1/9, 1/12, 1/9, 1/12}

Out[1748]= {0.111, 0.111, 0.0833, 0.111, 0.0833, 0.111, 0.111, \
0.0833, 0.111, 0.0833}

Out[1749]= {720, True, True}

Оставить комментарий

Архив записей в блогах:
...что такое "рамный рельс"? А я вот теперь знаю. Хорошая работа людям помогать - всегда в тонусе, всегда в познании нового. После трех дней изучения материалов дела, нормативных актов, технических требований, более-менее поняв обстоятельства, самолично решил присвоить себе высокое звание ...
Джон Рональд Руэл Толкиен (Толкин) (1892—1973) 3 января — день рождения Джона Рональда Руэла Толкиена (Толкина) (1892—1973), автора знаменитой трилогии «Властелин колец». Произведение хотя и несомненно талантливое, но и столь же несомненно реакционное, о чём автор этих строк писал ...
Вот так примерно и проникают в нашу жизнь агенты госдепа. Вот такие вот, милые (на вид) "божие одуванчики" и "раскачивают лодку"(тм) "встающей с колен"(тм). Что-то мне подсказывает, что эта старушенция вылазит со всяких нацистских сайтов и прочих ...
"" Казаки! Казаки идут! – этот крик на восьмой день после битвы при Ватерлоо разносился по всей нашей северной границе. Услышав этот крик, жители убегали в леса или прятались за крепостными стенами, с высоты которых они видели на расстоянии пушечного выстрела стремительно ...
Есть, можно сказать, вечные ценности. Пока суть да дело, продолжаются акции протесты на территории соседнего государство, но мы это уже видели. И не только мы. Отмотаем время на 19 лет назад, прямо какое-то ощущение дежавю. ...