![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| VisMaster |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 16.3.2007 Где: СПб Репутация: нет Всего: нет |
Здравствуйте есть ли аналог в C# такой функции из matlab:
out = randsrc(m,n,[alphabet; prob]) Возвращает матрицу размером m на n, элементы которой являются независимыми случайными числами, выбираемыми из вектора-строки alphabet. Повторяющиеся значения в векторе alphabet игнорируются. Вектор-строка prob содержит вероятности появления символов, так что символу alphabet(k) соответствует вероятность prob(k), где k — целое число в диапазоне от единицы до размера вектора alphabet. Сумма элементов вектора prob должна быть равна единице Если более подробно то необходимо out = randsrc(1,1,[0,1; 0.3, 0.7]) чтобы функция вернула 0 с вероятностью 0.3 от общего числа опытов... Есть ли что то подобное? Google-ил - не помогла Заранее благодарен... |
|||
|
||||
| Zakonnic |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 25.4.2006 Репутация: 2 Всего: 6 |
Нет. Программисты на С# настолько суровы, что получают случайные числа бросанием кубика, а затем заполняют ими матрицу:
ЗЫ. Если вы пока не настолько суровы, для заполнения матрицы придется писать свою функцию. Либо искать сторонние матбиблиотеки, но здесь я пас. --------------------
...и никогда не пишите в комментариях правду |
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 31 Всего: 142 |
Ну такой хитроумной функции, видимо, действительно нет, всё таки дотнет - не математический пакет. Написать её видимо прийдётся самому, единственное добавление: для генерации (псевдо)случайных чисел существует класс System.Random.
-------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| VisMaster |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 16.3.2007 Где: СПб Репутация: нет Всего: нет |
Да про System.Random уже знаю. Нашел выход, не совсем правильный на мой взгляд, но хоть что то:
считаю что вероятность появления 0 равна Р, а вероятность появления 1 = (Р-1) , следовательно общее количество появлений 0 равна int (количество опытов)/Р = Count0, а затем генерю случайную последовательность из Count0 элементов, элементы с этими порядковыми номерами и будут нулями, во всех остальных будут 1. Идея топорная, но может быть кому то и подойдет... |
|||
|
||||
| Zakonnic |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 25.4.2006 Репутация: 2 Всего: 6 |
Ради спортивного интереса написал вам такую функцию
Тест:
Результат - в итоговом массиве содержится примерно 300 нулей, 100 единиц, 200 двоек и 400 троек. --------------------
...и никогда не пишите в комментариях правду |
||||
|
|||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |