The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Более 5900 интернет-магазинов поражены вредоносным ПО для пе..., opennews (??), 15-Окт-16, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


5. "Более 5900 интернет-магазинов поражены вредоносным ПО для пе..."  +1 +/
Сообщение от 5kbps (ok), 15-Окт-16, 11:54 
Заглянул в
> простые и читаемые скрипты

Вижу строчку
>  var myid = ms.getTime()+"-"+Math.floor(Math.random()*(999999999-11111111+1)+11111111);

Кто-нибудь может объяснить, зачем эти девятки и единицы?

Ответить | Правка | Наверх | Cообщить модератору

6. "Более 5900 интернет-магазинов поражены вредоносным ПО для пе..."  +11 +/
Сообщение от Владимирemail (??), 15-Окт-16, 12:07 
Могу. Надо задумать числа от 11111111 до 999999999. Есть функция math.random, она задумывает числа от 0 до 1. Чтобы задумать числа до 999999999 - надо умножить math.random на 999999999, и отбросить дробную часть. Но это будут числа от нуля. Чтобы числа были от 11111111, а не от нуля -- надо это число к результату добавить. Но тогда числа будут не до 999999999, а до 999999999+11111111, что нам не надо. Поэтому будем задумывать не до 999999999, а до 999999999-11111111, тогда все будет нормально.

Зачем там +1 не знаю, округление какое-нибудь.

Ответить | Правка | Наверх | Cообщить модератору

8. "Более 5900 интернет-магазинов поражены вредоносным ПО для пе..."  +7 +/
Сообщение от Анином (?), 15-Окт-16, 12:59 
Пря детектив какой-то. Читал , затаив дыхание.
Ответить | Правка | Наверх | Cообщить модератору

109. "Более 5900 интернет-магазинов поражены вредоносным ПО для пе..."  +/
Сообщение от _hide_ (ok), 17-Окт-16, 10:26 
Вот только почему
+11111111  
а не просто
+10000000
?
Ответить | Правка | Наверх | Cообщить модератору

9. "Более 5900 интернет-магазинов поражены вредоносным ПО для пе..."  +1 +/
Сообщение от Аноним (-), 15-Окт-16, 13:06 
В жабаскрипте Math.random() выдаёт числа в интервале [0, 1) (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe.... В сочетании с округлением в меньшую сторону это означает, что без "+1" число 999999999 не получится никогда.
Ответить | Правка | К родителю #6 | Наверх | Cообщить модератору

33. "Более 5900 интернет-магазинов поражены вредоносным ПО для пе..."  –4 +/
Сообщение от кверти (ok), 15-Окт-16, 20:57 
(999999999+11111111+1)
А все программисты делают это настролько дибильно? Неужели нельзя результат написать и не писать эту ересь в скобках?
Ответить | Правка | К родителю #6 | Наверх | Cообщить модератору

38. "Более 5900 интернет-магазинов поражены вредоносным ПО для пе..."  +2 +/
Сообщение от Стог сена (?), 15-Окт-16, 23:38 
> (999999999-11111111+1)

Тогда неясно будет, откуда взялось именно такое число, и придётся пояснять в комментарии.

Ответить | Правка | Наверх | Cообщить модератору

44. "Более 5900 интернет-магазинов поражены вредоносным ПО для пе..."  +/
Сообщение от тоже Аноним (ok), 16-Окт-16, 00:05 
Более того - перепроверять каждый раз при поиске ошибок в этом коде.
Ответить | Правка | Наверх | Cообщить модератору

50. "Более 5900 интернет-магазинов поражены вредоносным ПО для пе..."  –5 +/
Сообщение от кверти (ok), 16-Окт-16, 02:16 
Что значит не ясно???? (min, max)*число1 + число2. И если min и max 0 и 1 соответственно, то что тут неясного??? Я фигею, программисты математику не знают...Быдлокодеры одним словом.
PS Можете минусовать, посмотрим сколько здесь вас)))
Ответить | Правка | Наверх | Cообщить модератору

70. "Более 5900 интернет-магазинов поражены вредоносным ПО для пе..."  +5 +/
Сообщение от тоже Аноним (ok), 16-Окт-16, 15:37 
Вы не поняли сказанного. Дело в том, что компьютер априори знает математику, и подобные формулы на практике ни на единую миллисекунду не замедляют исполнение скрипта.
А вот ошибки при подсчете программист сделать вполне может.
И тот, кому потом придется сопровождать этот код, должен иметь возможность как можно меньше думать над ним. Очевидная формула в этом смысле значительно лучше ее результата. Ибо формула читается бегло, результат же заставляет непродуктивно потратить время на его анализ.

Собственно, ваши "очевидные", а на деле - бессмысленные (и даже вредные) оптимизации - это частая ошибка новичков, тех самых быдлокодеров, которыми вы, не дав себе труда задуматься, обзываете собеседников.

Ответить | Правка | Наверх | Cообщить модератору

93. "Более 5900 интернет-магазинов поражены вредоносным ПО для пе..."  +/
Сообщение от Сириус (?), 16-Окт-16, 22:11 
> компьютер априори знает математику

И тут я почувствовал себя старым. Ведь я помню ещё FDIV bug в первых Пентиумах...

Ответить | Правка | Наверх | Cообщить модератору

94. "Более 5900 интернет-магазинов поражены вредоносным ПО для пе..."  +/
Сообщение от тоже Аноним (ok), 17-Окт-16, 00:43 
В память о котором AMD самонадеянно назвали свой флагман Бульдозером :)
Ответить | Правка | Наверх | Cообщить модератору

107. "Более 5900 интернет-магазинов поражены вредоносным ПО для пе..."  –1 +/
Сообщение от Аноним (-), 17-Окт-16, 09:26 
Для человека уже аццкинепостльная задача сделать в уме 988888889 +1 ?
Ответить | Правка | К родителю #93 | Наверх | Cообщить модератору

113. "Более 5900 интернет-магазинов поражены вредоносным ПО для пе..."  +/
Сообщение от НяшМяш (ok), 17-Окт-16, 12:50 
Ну не микроконтроллер же программируем, где умножение сдвигом делают. В вебе всё равно - за 1 такт или за 10 выполнится расчёт числа - всё равно всё сожрёт постройка дома и отрисовка.
Ответить | Правка | Наверх | Cообщить модератору

128. "Более 5900 интернет-магазинов поражены вредоносным ПО для пе..."  +/
Сообщение от InuYasha (?), 13-Май-19, 11:45 
>должен иметь возможность как можно меньше думать над ним.

Это при том, что об этой строке УЖЕ задали вопрос, в треде которого ты отвечаешь...

Ответить | Правка | К родителю #70 | Наверх | Cообщить модератору

88. "Более 5900 интернет-магазинов поражены вредоносным ПО для пе..."  +/
Сообщение от мимо проходил (?), 16-Окт-16, 20:56 
И ты хочешь сказать что с одного взгляда подсчитал количество единиц и девяток
в 999999999, 11111111 и 11111111?

Вот эта херня - Math.floor(Math.random()*(999999999-11111111+1)+11111111);
взята копипастом из документации.
В которой Math.floor(Math.random() * (max - min + 1)) + min;

Только копипастер не сообразил что max и min "говорящие" имена.
И не додумался использовать константы.

Ответить | Правка | К родителю #44 | Наверх | Cообщить модератору

91. "Более 5900 интернет-магазинов поражены вредоносным ПО для пе..."  +1 +/
Сообщение от тоже Аноним (ok), 16-Окт-16, 21:26 
Я хочу сказать, что с одного взгляда видно, что ошибки подсчета здесь нет. Потому что он не выполнялся.
Возможна ошибка программиста, но для ее проверки не надо делать обратный расчет, достаточно пересчитать единицы (минимальное значение результата) и девятки (максимальное). Ну, и проверить, одинаково ли количество единиц в двух случаях. Чисто механическая работа, в которой допустить ошибку самому гораздо маловероятнее, нежели при обратном пересчете.
Ответить | Правка | Наверх | Cообщить модератору

40. "Более 5900 интернет-магазинов поражены вредоносным ПО для пе..."  +1 +/
Сообщение от Стог сена (?), 15-Окт-16, 23:43 
> Зачем там +1 не знаю, округление какое-нибудь.

Возможно, для того, что Math.random() выдаёт значения из открытого интервала [0, 1), поэтому 1.0 она никогда не выдаст и целая часть максимального числа будет на 1 меньше 999999999.
Если так, то программер -- перфекционист.

Ответить | Правка | К родителю #6 | Наверх | Cообщить модератору

25. "Более 5900 интернет-магазинов поражены вредоносным ПО для пе..."  –1 +/
Сообщение от Аноним (-), 15-Окт-16, 18:34 
> Кто-нибудь может объяснить, зачем эти девятки и единицы?

Это яваскрипт, детка. Он простой и читаемый. Но состоит из костылей чуть более чем полностью.

Ответить | Правка | К родителю #5 | Наверх | Cообщить модератору

29. "Более 5900 интернет-магазинов поражены вредоносным ПО для пе..."  +1 +/
Сообщение от angra (ok), 15-Окт-16, 20:05 
И в чем здесь костыль? Неужто отсутсвие встроенного варианта random работающего не в [0,1), а сразу дающего целые числа от 0 до n вводит "программистов" на правильных языках в ступор?
Ответить | Правка | Наверх | Cообщить модератору

30. "Более 5900 интернет-магазинов поражены вредоносным ПО для пе..."  +/
Сообщение от Аноним (-), 15-Окт-16, 20:27 
> И в чем здесь костыль?

Наверное в том что код выглядит как свалка костылей. Как там говорится? Сам либу для замка, коня и принцессы, а пока ты их выписываешь - принцесса переезжает в другой замок и рыцарь обнаруживает что замок уже забросили? :)

Ответить | Правка | Наверх | Cообщить модератору

46. "Более 5900 интернет-магазинов поражены вредоносным ПО для пе..."  +/
Сообщение от angra (ok), 16-Окт-16, 00:40 
Еще раз, в чем костыльность именно этой строки кода? Покажи, как ее переписать правильно и без костылей на ТРУЪ ЯП.
Ответить | Правка | Наверх | Cообщить модератору

51. "Более 5900 интернет-магазинов поражены вредоносным ПО для пе..."  +/
Сообщение от oopsy (?), 16-Окт-16, 02:25 
myid = "{}-{}".format(ms.getTime(), random.randint(11111111,999999999))
Ответить | Правка | Наверх | Cообщить модератору

55. "Более 5900 интернет-магазинов поражены вредоносным ПО для пе..."  +1 +/
Сообщение от angra (ok), 16-Окт-16, 06:52 
Молодец, подтвердил то, что я сказал раньше: 'отсутствие встроенного варианта random работающего не в [0,1), а сразу дающего целые числа от 0 до n вводит "программистов" на правильных языках в ступор'. Ну и добавил к этому неэффективность в виде использования функции форматирования вместо банальной конкатенации.
Кто следующий блеснет интеллектом?
Ответить | Правка | Наверх | Cообщить модератору

68. "Более 5900 интернет-магазинов поражены вредоносным ПО для пе..."  +/
Сообщение от oopsy (?), 16-Окт-16, 14:03 
Просил переписать на Ъ-языке?
Так там там есть подходящие функции.

> Ну и добавил к этому неэффективность в виде использования функции форматирования вместо банальной конкатенации.

it depend. "банальная конкатенация" может быть как медленнее так и быстрее форматного преобразования. Вот для подобного случая - быстрее:

>>> timeit.timeit("str(1234567890)+'+'+str(987654321)")

0.5285220146179199
>>> timeit.timeit("'%s-%s'%(1234567890, 987654321)")

0.2919321060180664
>>> timeit.timeit("'{}-{}'.format(1234567890, 987654321)")

0.45542097091674805

> Кто следующий блеснет интеллектом?

Ты, меднолобый, и блеснёшь :)

Ответить | Правка | Наверх | Cообщить модератору

98. "Более 5900 интернет-магазинов поражены вредоносным ПО для пе..."  +/
Сообщение от angra (ok), 17-Окт-16, 02:23 
> Просил переписать на Ъ-языке?
> Так там там есть подходящие функции.

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

> it depend. "банальная конкатенация" может быть как медленнее так и быстрее форматного
> преобразования. Вот для подобного случая - быстрее:
>>>> timeit.timeit("str(1234567890)+'+'+str(987654321)")
> 0.5285220146179199
>>>> timeit.timeit("'%s-%s'%(1234567890, 987654321)")
> 0.2919321060180664
>>>> timeit.timeit("'{}-{}'.format(1234567890, 987654321)")

А теперь подумай, что именно ты измеряешь?
>>> timeit.timeit("'{}-{}'.format('1234567890','987654321')")

0.25194787979125977
>>> timeit.timeit("'{}-{}'.format(1234567890,987654321)")

0.3887770175933838
>>> timeit.timeit("'1234567890'+'-'+'987654321'")

0.018227815628051758
>>> timeit.timeit("str(1234567890)+'-'+str(987654321)")

0.4442710876464844
>>> timeit.timeit("str(1234567890)")

0.178314924240112

Как видим собственно конкатенация многократно быстрее форматирования. А тормоза str это уже из особенностей питона.

Ответить | Правка | Наверх | Cообщить модератору

75. "Более 5900 интернет-магазинов поражены вредоносным ПО для пе..."  +1 +/
Сообщение от Аноним (-), 16-Окт-16, 16:30 
> переписать правильно и без костылей на ТРУЪ ЯП.

Не ушлепищно, очевидно, выглядит random(100500). Дающий random от 0 до 100500. Это так сложно для яваскриптеров? :)

Ответить | Правка | К родителю #46 | Наверх | Cообщить модератору

90. "Более 5900 интернет-магазинов поражены вредоносным ПО для пе..."  +/
Сообщение от мимо проходил (?), 16-Окт-16, 21:07 
Зачем ТРУЪ ЯП?

Вот как правильно писать на javascript
getRandomIntInclusive(11111111, 999999999);

Ответить | Правка | К родителю #46 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру