|
| Дата |
|
USD/RUB | 88.6852 | BTC/USD | 68446.3164 |
|
|
|
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии. |
03.09.2011, 16:45
|
Start Post: Прогеры по PHP Help me
|
Senior Member
Регистрация: 03.12.2009
Сообщений: 138
Бабло: $51655
|
В общем господа прогеры есть такая простая задаа, поскольку сам в пхп вообще ноль то прошу вас помочь.
Нужно написать скрипт что бы он рандомно брал строку и вставлял в то место где я его поставлю.
Например в файле 1.txt который находится на хостинге hosting.com/1.txt находится текст
1.текст
2.текст
3.текст
Он должен после каждого обновления страницы выводить этот разные строки, помогите кто в этом шарит.
|
|
|
03.09.2011, 20:12
|
#22
|
автоматизирую интернеты
Регистрация: 05.07.2009
Адрес: chesser.ru
Сообщений: 3,362
Бабло: $470735
|
генератор случайных чисел rand хуевый, он не катит вообще, тем более для выборки строк текста, тут надо mt_rand или самопис
да и вообще, нужен качественный источник энтропии
кстати, пробовали делать самопис в рамках какой-то лабы, получалось реально круче чем дефолтный рандом, более равномерное распределение вероятностей
|
|
|
03.09.2011, 20:22
|
#23
|
Je suis moine ivre
Регистрация: 03.03.2009
Сообщений: 15,268
Бабло: $797172957
|
Уже второй раз слышу про mt_rand, откуда ноги у этой байки растут?
|
|
|
03.09.2011, 20:38
|
#24
|
Читатель
Регистрация: 23.11.2007
Сообщений: 420
Бабло: $48745
|
Цитата:
Сообщение от Drunk Monk
Уже второй раз слышу про mt_rand, откуда ноги у этой байки растут?
|
Ноги растут отсюда http://php.net/manual/ru/function.mt-rand.php
Хотя фактически главное что там написано "4 times faster", т.е. не то чтобы "рандомнее" а быстрее.
Ну и я тоже приверженец практики поэтому когда читаю пусть даже в доках что "ранд это плохо", а "эвал вообще ужос-ужос" -- то делаю свои тесты, как в твоем сравнении, которые четко показывают что там и как на самом деле. По сути все эти терки - борьба теории (или уважаемых, но устаревших источников информации) и практики, а я сугубо за практику.
|
|
|
03.09.2011, 20:39
|
#25
|
автоматизирую интернеты
Регистрация: 05.07.2009
Адрес: chesser.ru
Сообщений: 3,362
Бабло: $470735
|
Drunk Monk, а надо нормальными ОС пользоваться
ну и эта... 1) посчитай дисперсию или среднеквадратичное отклонение - так нагляднее будет; 2) цикол лучше объединить, хрен ее знает как там энтропия ходит в разные моменты времени
ну и я попробовал твой код, у меня mt_rand по ср.квад откл-ю лучше процентов на 5-15, запускал раз 10
скорость бы еще померять
|
|
|
03.09.2011, 20:44
|
#26
|
кодер-энтузиаст
Регистрация: 04.04.2007
Адрес: Джамайка
Сообщений: 3,381
Бабло: $447150
|
и у rand() и у mt_rand() не совсем равномерное распределение и это печалька.
|
|
|
03.09.2011, 20:49
|
#27
|
Je suis moine ivre
Регистрация: 03.03.2009
Сообщений: 15,268
Бабло: $797172957
|
100 лям рандов сгенерилось за 59 секунд, а 100 лям мт_рандов - за 57
Повторяю тест с распределением:
PHP код:
<?php for($i=0;$i<10000000;$i++){ $rnd[rand(0, 9)]++; $mt_rnd[mt_rand(0, 9)]++; }
print_r($rnd); print_r($mt_rnd); ?>
Цитата:
Array
(
[5] => 1000079
[4] => 999805
[9] => 999752
[0] => 1000058
[2] => 1000064
[3] => 1000073
[6] => 1000035
[8] => 1000044
[7] => 1000054
[1] => 1000036
)
Array
(
[8] => 999923
[4] => 1000442
[5] => 999893
[6] => 999288
[2] => 999006
[1] => 999696
[3] => 1000214
[0] => 1000699
[9] => 1000266
[7] => 1000573
)
|
Один хуй, короче
|
|
|
03.09.2011, 21:01
|
#28
|
автоматизирую интернеты
Регистрация: 05.07.2009
Адрес: chesser.ru
Сообщений: 3,362
Бабло: $470735
|
Drunk Monk, мои 100 лямов:
Код:
Array
(
[3] => 10003809
[6] => 9999529
[5] => 10000846
[7] => 9990519
[1] => 9999637
[0] => 9996238
[4] => 10002559
[2] => 10005670
[9] => 10003302
[8] => 9997891
)
Disp: 32372
Array
(
[5] => 10003143
[8] => 9996204
[7] => 9999223
[9] => 10002178
[4] => 9999970
[3] => 9998393
[6] => 9995978
[0] => 10000885
[1] => 10001115
[2] => 10002911
)
Disp: 20464
- rand первым идет
Disp у меня на самом деле ср.квад.отлонение, а не дисперсия, но смысл тот же.
вот еще 10 лямов:
Код:
Array
(
[6] => 1000515
[8] => 999473
[1] => 1000149
[9] => 999596
[0] => 1000760
[5] => 998779
[4] => 1000725
[2] => 999967
[7] => 998805
[3] => 1001231
)
Disp: 6760
Array
(
[1] => 1000343
[3] => 999612
[2] => 1001183
[8] => 1000232
[7] => 999961
[0] => 1000540
[9] => 999477
[4] => 1000219
[5] => 999352
[6] => 999081
)
Disp: 5034
|
|
|
03.09.2011, 21:02
|
#29
|
Je suis moine ivre
Регистрация: 03.03.2009
Сообщений: 15,268
Бабло: $797172957
|
Вот и не понятно, почему срочно надо везде дописывать mt_
|
|
|
03.09.2011, 21:05
|
#30
|
Senior Member
Регистрация: 18.08.2007
Сообщений: 1,098
Бабло: $199375
|
FILE_IGNORE_NEW_LINES блять
|
|
|
03.09.2011, 21:40
|
#31
|
Senior Member
Регистрация: 04.09.2007
Сообщений: 1,267
Бабло: $254000
|
по mt_rand
есть шаб, который вызывается внутри скрипта.
в шабе вызывается простейший ротатор картинок (mt_rand(0,$n).jpg) на php, отдающий заголовок+контент картинки
вопроса 2:
1) какого хрена при вызове ротатора n раз значение генерится одно (2 или более обращений к скрипту внутри одной страницы)
2) как заставить генерить каждый раз разные числа
|
|
|
|