Pull to refresh

Comments 13

Извините, но не совсем понятно какую задачу вы пытаетесь решить.

Одной из функций приложения, над которым я работал, было показывать набор случайных цифр. Стало интересно получится ли найти правило по которому можно соотнести каждый такой набор с целым числом. 

Вам нужно отобразить M случайных цифр, при том что само M тоже случайно и меньше заданного N?

И вы решили найти функцию (в математическом смысле) которая отображает число X в эту самую последовательность цифр?

Вы правильно поняли. Это статья про поиск той самой функции. В приложении требовалось выводить последовательности от 0 до 999, но я хотел посмотреть насколько сильно это можно абстрагировать. Почти все методы которые первыми приходят в голову не справляются с нулями слева (01, 001 и тд), поэтому так увлёкся.

Ну вам большой плюс что вы выразили это в виде алгебраической формулы, конечно. Но вообще математики не гнушаются использовать if/switch при записи функций. Функция Дирихле, как тому пример.

Кстати, интересно почему у вас получилось 1_111_111_109, а не 1_111_111_110?

Для случая с тремя цифрами:

У нас :

1000 комбинаций 000-999

100 комбинаций 00-99

10 "комбинаций" 0-9

(и еще 1 "комбинация" для пустой строки).

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

"заданное число ожидается минимум 0, а максимум 1_111_111_109" речь об ожидаемом числе которое принимает функция, не о количестве комбинаций. То есть комбинаций 1_111_111_110, это верно.

А если генерировать числа не от 0, а от -10, то можно вручную разделить их на числа с нулём в начале и без.

А если генерировать числа от 10^(series_length), то можно просто игнорировать лидирующую единицу и в ус не дуть.

Не, если я правильно понял что автор хотел сделать, то так не получится. Потому что код должен уметь генерировать "0", "1", "00", "01", "001", "000" и все в том же духе. А у вас - получится только 000 и 001.

Отнюдь. Чтобы генерировать строки разной длины, надо просто варьировать параметр series_length.

Таки "нюдь".

надо просто варьировать параметр series_length.

Ну это простой и очевидный вариант Можно вообще просто в цикле генерировать цифры и не париться. А вы попробуйте напишите функцию которая одно случайное число, отображает в эту самую последовательность цифр переменной длины. Да еще и так, чтобы распределение сего отображения было равномерным. Я так понимаю, это и было целью данной работы.

@lorc правильно подметил что основная проблема в нулях слева. Вы уточните как именно применить ваш метод чтобы получать последовательности вроде 01, 001 и тд.

Имхо, алгебры я тут не увидел. Только арифметику

Вспомнил как проходили ряды в школе на уроках алгебры. Поэтому такое название статьи.

Выше @lorc спросил. Можете присоединиться к обсуждению.

Sign up to leave a comment.

Articles