Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/случайная расстановка чисел - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
случайная расстановка чисел
0mega Дата: Понедельник, 18.10.2010, 17:54 | Сообщение № 1
Группа: Проверенные
Ранг: Ветеран
Сообщений: 627
Репутация: 34 ±
Замечаний: 0% ±

доброго времени суток
Office 2003
А1:А10
цифры 1 до 10 расположить в случайном порядке
 
Ответить
Сообщениедоброго времени суток
Office 2003
А1:А10
цифры 1 до 10 расположить в случайном порядке

Автор - 0mega
Дата добавления - 18.10.2010 в 17:54
Саня Дата: Понедельник, 18.10.2010, 20:20 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 1068
Репутация: 560 ±
Замечаний: 0% ±

XL 2016
Уокенбах 11 глава
К сообщению приложен файл: random_function.xls (33.5 Kb)
 
Ответить
СообщениеУокенбах 11 глава

Автор - Саня
Дата добавления - 18.10.2010 в 20:20
Alex_ST Дата: Вторник, 19.10.2010, 16:44 | Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3213
Репутация: 609 ±
Замечаний: 0% ±

2003
А проще так:
[vba]
Код
Sub Rnd_40mega()
       Const nMin& = 1
       Const nMax& = 10
       Dim iVal
       Randomize
       With CreateObject("Scripting.Dictionary")
          Do While .Count < (nMax - nMin + 1)
             iVal = .Item(Int((nMax - nMin + 1) * Rnd + nMin&))   'если обращаемся к словарю по не существующему ключу, то создаётся запись с этим ключом
          Loop
          ActiveCell.Resize(UBound(.Keys) + 1).Value = Application.WorksheetFunction.Transpose(.Keys)
       End With
End Sub
[/vba]



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Вторник, 19.10.2010, 19:10
 
Ответить
СообщениеА проще так:
[vba]
Код
Sub Rnd_40mega()
       Const nMin& = 1
       Const nMax& = 10
       Dim iVal
       Randomize
       With CreateObject("Scripting.Dictionary")
          Do While .Count < (nMax - nMin + 1)
             iVal = .Item(Int((nMax - nMin + 1) * Rnd + nMin&))   'если обращаемся к словарю по не существующему ключу, то создаётся запись с этим ключом
          Loop
          ActiveCell.Resize(UBound(.Keys) + 1).Value = Application.WorksheetFunction.Transpose(.Keys)
       End With
End Sub
[/vba]

Автор - Alex_ST
Дата добавления - 19.10.2010 в 16:44
0mega Дата: Вторник, 19.10.2010, 20:19 | Сообщение № 4
Группа: Проверенные
Ранг: Ветеран
Сообщений: 627
Репутация: 34 ±
Замечаний: 0% ±

Alex_ST, аналитика,
благодарю за подсказку
Quote (Alex_ST)
А проще так:

Для меня было бы проще, если бы "Sub" заменить на "=" tongue


Сообщение отредактировал 0mega - Вторник, 19.10.2010, 20:44
 
Ответить
СообщениеAlex_ST, аналитика,
благодарю за подсказку
Quote (Alex_ST)
А проще так:

Для меня было бы проще, если бы "Sub" заменить на "=" tongue

Автор - 0mega
Дата добавления - 19.10.2010 в 20:19
Alex_ST Дата: Вторник, 19.10.2010, 21:29 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3213
Репутация: 609 ±
Замечаний: 0% ±

2003
Quote (0mega)
доброго времени суток
Office 2003
А1:А10
цифры 1 до 10 расположить в случайном порядке

ну и откуда я мог об этом догадаться?



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
Сообщение
Quote (0mega)
доброго времени суток
Office 2003
А1:А10
цифры 1 до 10 расположить в случайном порядке

ну и откуда я мог об этом догадаться?

Автор - Alex_ST
Дата добавления - 19.10.2010 в 21:29
0mega Дата: Вторник, 19.10.2010, 22:06 | Сообщение № 6
Группа: Проверенные
Ранг: Ветеран
Сообщений: 627
Репутация: 34 ±
Замечаний: 0% ±

Алексей, нет никаких претензий

ok respect

 
Ответить
СообщениеАлексей, нет никаких претензий

ok respect


Автор - 0mega
Дата добавления - 19.10.2010 в 22:06
Alex_ST Дата: Среда, 20.10.2010, 08:37 | Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3213
Репутация: 609 ±
Замечаний: 0% ±

2003
А вообще-то, при такой постановке задачи:
Quote (0mega)
А1:А10
цифры 1 до 10 расположить в случайном порядке
я как-то слабо представляю решение формулой...
Конечно, я в формулах только по поверхности плаваю (как что-то в проруби smile ), но здесь, кажется, в любом случае без UDF не обойтись.

0mega, а если вместо Sub в коде будет написано Function, то вам, конечно же станет намного легче? tongue :p tongue




С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Среда, 20.10.2010, 08:37
 
Ответить
СообщениеА вообще-то, при такой постановке задачи:
Quote (0mega)
А1:А10
цифры 1 до 10 расположить в случайном порядке
я как-то слабо представляю решение формулой...
Конечно, я в формулах только по поверхности плаваю (как что-то в проруби smile ), но здесь, кажется, в любом случае без UDF не обойтись.

0mega, а если вместо Sub в коде будет написано Function, то вам, конечно же станет намного легче? tongue :p tongue


Автор - Alex_ST
Дата добавления - 20.10.2010 в 08:37
0mega Дата: Среда, 20.10.2010, 11:27 | Сообщение № 8
Группа: Проверенные
Ранг: Ветеран
Сообщений: 627
Репутация: 34 ±
Замечаний: 0% ±

Alex_ST,
Похоже что мы начинаем терять азимут направления темы
ответ я перенес сюда
 
Ответить
СообщениеAlex_ST,
Похоже что мы начинаем терять азимут направления темы
ответ я перенес сюда

Автор - 0mega
Дата добавления - 20.10.2010 в 11:27
Serge_007 Дата: Четверг, 21.10.2010, 10:22 | Сообщение № 9
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (Alex_ST)
я как-то слабо представляю решение формулой...

Решение формулами (правда с доп. столбцом) здесь: http://excel.ucoz.ru/forum/5-97-1102-16-1287641872
Автор решения Michael_S.


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (Alex_ST)
я как-то слабо представляю решение формулой...

Решение формулами (правда с доп. столбцом) здесь: http://excel.ucoz.ru/forum/5-97-1102-16-1287641872
Автор решения Michael_S.

Автор - Serge_007
Дата добавления - 21.10.2010 в 10:22
Alex_ST Дата: Четверг, 21.10.2010, 15:24 | Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3213
Репутация: 609 ±
Замечаний: 0% ±

2003
Ну, решение формулами, конечно, красивое, но не совсем корректное.
Quote (Справка Ёкселя)
Функция СЛЧИС возвращает равномерно распределенное случайное число, большее либо равное 0 и меньшее 1
Т.е. никто не гарантирует, что при достаточно большом числе попыток функция СЛЧИС выдаст два одинаковых числа. Ведь ей это не запрещено.
К тому же разрядность чисел Ёкселя ограничена...
Ну, а из этого
Quote (Справка Ёкселя)
Функция РАНГ присваивает повторяющимся числам одинаковый ранг
следует, что вероятность повтора будет ещё выше. (не 1 раз на 10 миллионов попыток, а 1 раз на 5 миллионов! biggrin )
Предлагаемая же UDF будет крутить цикл до тех пор, пока не заполнит словарь только уникальными числами.



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Четверг, 21.10.2010, 15:26
 
Ответить
СообщениеНу, решение формулами, конечно, красивое, но не совсем корректное.
Quote (Справка Ёкселя)
Функция СЛЧИС возвращает равномерно распределенное случайное число, большее либо равное 0 и меньшее 1
Т.е. никто не гарантирует, что при достаточно большом числе попыток функция СЛЧИС выдаст два одинаковых числа. Ведь ей это не запрещено.
К тому же разрядность чисел Ёкселя ограничена...
Ну, а из этого
Quote (Справка Ёкселя)
Функция РАНГ присваивает повторяющимся числам одинаковый ранг
следует, что вероятность повтора будет ещё выше. (не 1 раз на 10 миллионов попыток, а 1 раз на 5 миллионов! biggrin )
Предлагаемая же UDF будет крутить цикл до тех пор, пока не заполнит словарь только уникальными числами.

Автор - Alex_ST
Дата добавления - 21.10.2010 в 15:24
0mega Дата: Четверг, 21.10.2010, 17:09 | Сообщение № 11
Группа: Проверенные
Ранг: Ветеран
Сообщений: 627
Репутация: 34 ±
Замечаний: 0% ±

Alex_ST,
Quote (Alex_ST)
Ну, решение формулами, конечно, красивое, но не совсем корректное.
А кто-то прорубь вспоминал ... biggrin
Quote (Alex_ST)
...по поверхности плаваю (как что-то в проруби... )

Алексей, Даже если 1 раз на 100 000 выпадут два одинаковых значения то меня вполне устраивает это решение .

Quote (Alex_ST)
UDF будет крутить цикл до тех пор, пока не заполнит словарь только уникальными числами.
Кто-бы спорил, я не буду.
Но на сегодняшний день если выбирать между N=∞ и N=5*10^6 , то я выберу последнее, потому что там префикс "=" . Этот знак я могу заставить мне подчиниться. А у "бесконечности" в голове стоит "Sub" . И здесь получается полная противоположность. У меня 100%-ая зависимость от Sub-a


Сообщение отредактировал 0mega - Четверг, 21.10.2010, 17:16
 
Ответить
СообщениеAlex_ST,
Quote (Alex_ST)
Ну, решение формулами, конечно, красивое, но не совсем корректное.
А кто-то прорубь вспоминал ... biggrin
Quote (Alex_ST)
...по поверхности плаваю (как что-то в проруби... )

Алексей, Даже если 1 раз на 100 000 выпадут два одинаковых значения то меня вполне устраивает это решение .

Quote (Alex_ST)
UDF будет крутить цикл до тех пор, пока не заполнит словарь только уникальными числами.
Кто-бы спорил, я не буду.
Но на сегодняшний день если выбирать между N=∞ и N=5*10^6 , то я выберу последнее, потому что там префикс "=" . Этот знак я могу заставить мне подчиниться. А у "бесконечности" в голове стоит "Sub" . И здесь получается полная противоположность. У меня 100%-ая зависимость от Sub-a

Автор - 0mega
Дата добавления - 21.10.2010 в 17:09
Alex_ST Дата: Четверг, 21.10.2010, 17:20 | Сообщение № 12
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3213
Репутация: 609 ±
Замечаний: 0% ±

2003
0mega,
это достаточно быстро считается формулой когда значений не тысячи...



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
Сообщение0mega,
это достаточно быстро считается формулой когда значений не тысячи...

Автор - Alex_ST
Дата добавления - 21.10.2010 в 17:20
Serge_007 Дата: Четверг, 21.10.2010, 20:15 | Сообщение № 13
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (Alex_ST)
Ну, решение формулами, конечно, красивое, но не совсем корректное.

Совсем корректное будет если 2008 Excel установить и использовать =СЛУЧМЕЖДУ() smile


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (Alex_ST)
Ну, решение формулами, конечно, красивое, но не совсем корректное.

Совсем корректное будет если 2008 Excel установить и использовать =СЛУЧМЕЖДУ() smile

Автор - Serge_007
Дата добавления - 21.10.2010 в 20:15
Alex_ST Дата: Четверг, 21.10.2010, 21:29 | Сообщение № 14
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3213
Репутация: 609 ±
Замечаний: 0% ±

2003
Serge_007, что-то кругом народ массово откатывается на 2003-й
Да я и сам в прошлом году посмотрел НА ЧУЖОМ КОМПЕ 2007-й офис, мышкой потыкался, сказал "ну его нафиг" и с удовольствием вернулся к своему компу с ХРюшей и 2003-им офисом. smile



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеSerge_007, что-то кругом народ массово откатывается на 2003-й
Да я и сам в прошлом году посмотрел НА ЧУЖОМ КОМПЕ 2007-й офис, мышкой потыкался, сказал "ну его нафиг" и с удовольствием вернулся к своему компу с ХРюшей и 2003-им офисом. smile

Автор - Alex_ST
Дата добавления - 21.10.2010 в 21:29
Serge_007 Дата: Четверг, 21.10.2010, 22:12 | Сообщение № 15
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (Alex_ST)
Serge_007, что-то кругом народ массово откатывается на 2003-й

Я предпочитаю иметь все версии, чем замыкаться на одной.
Чуть более года назад я терпеть не мог 2007 :)))

Для Всех: Тема - опрос о версиях Excel, которыми Вы пользуетесь.



ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (Alex_ST)
Serge_007, что-то кругом народ массово откатывается на 2003-й

Я предпочитаю иметь все версии, чем замыкаться на одной.
Чуть более года назад я терпеть не мог 2007 :)))

Для Всех: Тема - опрос о версиях Excel, которыми Вы пользуетесь.


Автор - Serge_007
Дата добавления - 21.10.2010 в 22:12
Michael_S Дата: Пятница, 22.10.2010, 10:11 | Сообщение № 16
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация: 373 ±
Замечаний: 0% ±

Excel2016
Quote (Alex_ST)
Т.е. никто не гарантирует, что при достаточно большом числе попыток функция СЛЧИС выдаст два одинаковых числа. Ведь ей это не запрещено.

Случайное число выдается с точностью 15 знаков после запятой. Вероятность, что из 10 случ 2 окажется одинаковых = 1/10^14 smile
 
Ответить
Сообщение
Quote (Alex_ST)
Т.е. никто не гарантирует, что при достаточно большом числе попыток функция СЛЧИС выдаст два одинаковых числа. Ведь ей это не запрещено.

Случайное число выдается с точностью 15 знаков после запятой. Вероятность, что из 10 случ 2 окажется одинаковых = 1/10^14 smile

Автор - Michael_S
Дата добавления - 22.10.2010 в 10:11
Alex_ST Дата: Пятница, 22.10.2010, 11:51 | Сообщение № 17
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3213
Репутация: 609 ±
Замечаний: 0% ±

2003
могу только повторить:
Quote (Alex_ST)
это достаточно быстро считается формулой когда значений не тысячи
Тер.Вер. я , к счастью, проходил только в институте, поэтому, естественно, посчитать вероятность попадания двух одинаковых 15-разрядных чисел в равномерную выборку из, например, 1000 значений не могу...
Но всё равно, я думаю, что она (в смысле вероятность) пренебрежимо мала для реальных условий.
Ну, в смысле к тому времени, как выпадет наконец два одинаковых значения, скорее всего файл уже станет никому не нужен, т.к. под Windows-2050 Ёксель-2003 уж наверняка работать не будет biggrin



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Пятница, 22.10.2010, 12:08
 
Ответить
Сообщениемогу только повторить:
Quote (Alex_ST)
это достаточно быстро считается формулой когда значений не тысячи
Тер.Вер. я , к счастью, проходил только в институте, поэтому, естественно, посчитать вероятность попадания двух одинаковых 15-разрядных чисел в равномерную выборку из, например, 1000 значений не могу...
Но всё равно, я думаю, что она (в смысле вероятность) пренебрежимо мала для реальных условий.
Ну, в смысле к тому времени, как выпадет наконец два одинаковых значения, скорее всего файл уже станет никому не нужен, т.к. под Windows-2050 Ёксель-2003 уж наверняка работать не будет biggrin

Автор - Alex_ST
Дата добавления - 22.10.2010 в 11:51
0mega Дата: Пятница, 22.10.2010, 13:53 | Сообщение № 18
Группа: Проверенные
Ранг: Ветеран
Сообщений: 627
Репутация: 34 ±
Замечаний: 0% ±

Quote (Alex_ST)
под Windows-2050 Ёксель-2003 уж наверняка работать не будет

Алексей, я так думаю что на 50-х ставнях уже будет не 2003-й, а 2030 (как минимум)
и тогда можно будет воспользоваться функцией
=СЛУЧУНИКАЛЬНОЕ(диапазон;шаг)
 
Ответить
Сообщение
Quote (Alex_ST)
под Windows-2050 Ёксель-2003 уж наверняка работать не будет

Алексей, я так думаю что на 50-х ставнях уже будет не 2003-й, а 2030 (как минимум)
и тогда можно будет воспользоваться функцией
=СЛУЧУНИКАЛЬНОЕ(диапазон;шаг)

Автор - 0mega
Дата добавления - 22.10.2010 в 13:53
_Boroda_ Дата: Вторник, 26.10.2010, 18:07 | Сообщение № 19
Группа: Админы
Ранг: Местный житель
Сообщений: 16714
Репутация: 6503 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
А такой вариант?
Формулами. Вроде, даже теоретически, повторов быть не может. Без доп столбцов.
К сообщению приложен файл: _10slu_.rar (7.7 Kb) · _10slu_.xls (34.5 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеА такой вариант?
Формулами. Вроде, даже теоретически, повторов быть не может. Без доп столбцов.

Автор - _Boroda_
Дата добавления - 26.10.2010 в 18:07
0mega Дата: Вторник, 26.10.2010, 21:04 | Сообщение № 20
Группа: Проверенные
Ранг: Ветеран
Сообщений: 627
Репутация: 34 ±
Замечаний: 0% ±

_Boroda_,
здравствуйте.
Вo-первых: спасибо за решение. Честно говоря - формула для меня "тяжелая" и не понятная, но это уже вопрос пятый
Во-вторых: на этом форуме нет необходимости сжимать файлы.
"живой" excel здесь прекрасно грузится
P.S.
to admin
наградите плюсиком автора ответа
я с этой капчей до пенсии не доживу...
допускаю, что я слепой. но пусть зрячие скажут какой здесь код
К сообщению приложен файл: 3545321.jpg (51.2 Kb)


Сообщение отредактировал 0mega - Вторник, 26.10.2010, 21:06
 
Ответить
Сообщение_Boroda_,
здравствуйте.
Вo-первых: спасибо за решение. Честно говоря - формула для меня "тяжелая" и не понятная, но это уже вопрос пятый
Во-вторых: на этом форуме нет необходимости сжимать файлы.
"живой" excel здесь прекрасно грузится
P.S.
to admin
наградите плюсиком автора ответа
я с этой капчей до пенсии не доживу...
допускаю, что я слепой. но пусть зрячие скажут какой здесь код

Автор - 0mega
Дата добавления - 26.10.2010 в 21:04
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!