|
|
|
Вывести 1000 случайных чисел
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)Leanan, всё просто, схема: генеришь таличку N, R из 3*1000 строк в N заполняешь числа от 1 до 1000 по 3 раза, в R заносишь рандомное число дальше Select n form T order by R limit 1000 Может проще. Делаем три последовательности 1-1000 (3000 строк) Перемешиваем. Берем первые 1000 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2018, 04:02 |
|
||
|
Вывести 1000 случайных чисел
|
|||
|---|---|---|---|
|
#18+
Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2018, 06:08 |
|
||
|
Вывести 1000 случайных чисел
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2018, 07:05 |
|
||
|
Вывести 1000 случайных чисел
|
|||
|---|---|---|---|
|
#18+
Alexander_Ttl, Код: plsql 1. я так понял фишка 12-й версии? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2018, 07:24 |
|
||
|
Вывести 1000 случайных чисел
|
|||
|---|---|---|---|
|
#18+
MaxiflyДва арифметических действия (ну ok - можно и одно) (причем деления. Причем с округлением) это реально эффективнее двух UNION ALL?Чудак, это всяко лучше, чем владеть мастерством быдло-копи-паста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2018, 07:31 |
|
||
|
Вывести 1000 случайных чисел
|
|||
|---|---|---|---|
|
#18+
stells2, да, 12с. Сначала вариант с Код: sql 1. мне показался идеальным, но там действительно получается не случайные числа. Скажем, мы никогда не получим последовательность, не содержащую хотя бы одно число из 3-х идущих подряд, а это уже не случайные данные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2018, 07:46 |
|
||
|
Вывести 1000 случайных чисел
|
|||
|---|---|---|---|
|
#18+
Alexander_Ttl, мой вариант, выше, даёт псевдослучайную (использование любых библиотечных генераторов не даёт истинно СЧ) последовательность 1000 элементов в деапазоне 1..1000 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2018, 08:56 |
|
||
|
Вывести 1000 случайных чисел
|
|||
|---|---|---|---|
|
#18+
Alexander_Ttl, да, там есть "косячок", DBMS_RANDOM.value() генерит 0..1, и, может быть ситуация что trunc(DBMS_RANDOM.value()*1E3) = 0, что выпадает из условия 1..1Е3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2018, 09:11 |
|
||
|
Вывести 1000 случайных чисел
|
|||
|---|---|---|---|
|
#18+
Код: plsql 1. Код: plaintext 1. 2. 3. 4. 5. 6. 7. Код: plsql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2018, 09:18 |
|
||
|
Вывести 1000 случайных чисел
|
|||
|---|---|---|---|
|
#18+
stells2DBMS_RANDOM.value() генерит 0..1 у этой ф-ции есть параметры ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2018, 09:20 |
|
||
|
Вывести 1000 случайных чисел
|
|||
|---|---|---|---|
|
#18+
stells2, ты условия внимательно читал? Это должны быть случайные числа, но любое число из диапазона может повторяться не более 3 раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2018, 09:27 |
|
||
|
Вывести 1000 случайных чисел
|
|||
|---|---|---|---|
|
#18+
Alexander_TtlЭто должны быть случайные числа, но любое число из диапазона может повторяться не более 3 раз. Так оно и есть "случайное" и не повторяется более 3х раз, в чем не так? 123ййу этой ф-ции есть параметры Зачем они тут? Если произведение [0..1] х 1Е3 = 0..1E3 , что вполне совпадает с условием "из диапазона 1..1000". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2018, 09:39 |
|
||
|
Вывести 1000 случайных чисел
|
|||
|---|---|---|---|
|
#18+
stells2Зачем они тут? Если произведение [0..1] х 1Е3 = 0..1E3 , что вполне НЕ совпадает с условием "из диапазона 1..1000". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2018, 09:42 |
|
||
|
Вывести 1000 случайных чисел
|
|||
|---|---|---|---|
|
#18+
Alexander_Ttlно любое число из диапазона может повторяться не более 3 раз.У него круче, все числа, кроме 1 и 1000 повторяются ровно один раз. Правда "случайность" зависит от строчки плана hash group by. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2018, 09:49 |
|
||
|
Вывести 1000 случайных чисел
|
|||
|---|---|---|---|
|
#18+
-2- "случайность" зависит от строчки плана hash group by. Не совсем так, группировка тут на случайность никак не влияет, она вычленяет из уже полученных СЧ дубли. 123йй, вполне подходит, найдите вероятность выпадения 0. А подменить 0 на любое другое число, включая и рандомное не сложно. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2018, 09:59 |
|
||
|
Вывести 1000 случайных чисел
|
|||
|---|---|---|---|
|
#18+
stells2 найдите вероятность выпадения 0. или выпадет или нет :) stells2А подменить 0 на любое другое число, включая и рандомное не сложно. :) зачем что-то подменять если можно сразу получить без него ? и еще раз посмотри что хотел ТС 21508502 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2018, 10:06 |
|
||
|
Вывести 1000 случайных чисел
|
|||
|---|---|---|---|
|
#18+
123ййили выпадет или нет :) сколько раз? 123ййзачем что-то подменять если можно сразу получить без него ? и еще раз посмотри что хотел ТС 21508502 Получить 1000 случайных чисел от 1 до 1000, которые бы не повторялись более 3х раз. Код: plsql 1. Покажи в чем результат не удовлетворяет условию? Предложи свой вариант с DBMS_RANDOM.value(1,1000) что бы выполнялись все условия. Я свой предложил, это вариант, их может быть много и уже дали другие. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2018, 10:26 |
|
||
|
Вывести 1000 случайных чисел
|
|||
|---|---|---|---|
|
#18+
stells2-2- "случайность" зависит от строчки плана hash group by. Не совсем так, группировка тут на случайность никак не влияет, она вычленяет из уже полученных СЧ дубли.Ну да. Сначала создал дубли, потом удалил... в итоге имеешь одну и ту же последовательность 1,1,2,3,...,999 (возможно с дырками, то есть меньшим, чем 1000 штук количеством). Порядок последовательности определяется способом группировки (no_)use_hash_aggregation. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2018, 10:30 |
|
||
|
Вывести 1000 случайных чисел
|
|||
|---|---|---|---|
|
#18+
-2-Ну да. Сначала создал дубли, потом удалил... в итоге имеешь одну и ту же последовательность 1,1,2,3,...,999 (возможно с дырками, то есть меньшим, чем 1000 штук количеством). Порядок последовательности определяется способом группировки (no_)use_hash_aggregation. Может таки стоит выполнить запрос? ровно 1000 элементов, со случайным набором от 1 до 1000. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Чем эта выборка не удовлетворяет условию и чем она отличается от предложенных вариантов раннее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2018, 11:00 |
|
||
|
Вывести 1000 случайных чисел
|
|||
|---|---|---|---|
|
#18+
stells2Чем эта выборка не удовлетворяет условию и чем она отличается от предложенных вариантов раннее?Тем, что с вероятностью 4.4% вернет меньшее количество, чем 1000 элементов. Элементы не до 3х раз, а каждый один раз. В зависимости от выбора оптимизатора может вернуть упорядоченный набор. И при этом используются лишние 9000+1 обращений к dbms_random против лишних 2000 предлагаемых тут несколько раз разными авторами. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2018, 11:10 |
|
||
|
Вывести 1000 случайных чисел
|
|||
|---|---|---|---|
|
#18+
stells2Может таки стоит выполнить запрос? выполнил. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2018, 11:11 |
|
||
|
Вывести 1000 случайных чисел
|
|||
|---|---|---|---|
|
#18+
stells2Может таки стоит выполнить запрос? Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2018, 11:16 |
|
||
|
Вывести 1000 случайных чисел
|
|||
|---|---|---|---|
|
#18+
Сегласен. тогда Код: plsql 1. как тут вроде уже предлагали :) просто перемешали 1..1000 в случайном порядке, нет повторов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2018, 11:59 |
|
||
|
Вывести 1000 случайных чисел
|
|||
|---|---|---|---|
|
#18+
stells2как тут вроде уже предлагали :) просто перемешали 1..1000 в случайном порядке, нет повторов. могу сказать больше. Первым же ответом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2018, 12:04 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39663403&tid=1883822]: |
0ms |
get settings: |
5ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
156ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
93ms |
get tp. blocked users: |
1ms |
| others: | 218ms |
| total: | 502ms |

| 0 / 0 |
