Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.02.2013, 14:40   #1
alex(21)
Форумчанин
 
Аватар для alex(21)
 
Регистрация: 09.06.2009
Сообщений: 545
По умолчанию генератор случайных символов

Здравствуйте. помогите разобраться с вопросом. нужно сгенерировать случайный символ в диапазоне он A-Z и от а-я и записать в массив. с массивом понятно, а вот как сгенерировать случайный символ незнаю.
rnd.Next генерирует только числа
alex(21) вне форума Ответить с цитированием
Старый 21.02.2013, 14:49   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Код:
char NumberToAZ(int num){
  if(num<0 || num>=26) throw new IndexOutOfBoundsException();
  return "ABCDEFGHIJKLMNOPQRSTUVWXYZ"[num];
}
Abstraction вне форума Ответить с цитированием
Старый 21.02.2013, 15:06   #3
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

...точно случайный, а не псевдослучайный? Даже при использовании комбинированного генератора используется реальный датчик случайных чисел, включеный в контур генерации псевдослучайных последовательностей, тех же сдвиговых регистров или для генерации по m-последовательностям. Читать:
Цитата:
Песошин, В.А., Мансуров, Р.М., and Кузнецов, В.М.. Комбинированный генератор случайных чисел
Если все же именно случайный, то самое простое - грабим звуковую карту, выделяем младший "шумящий" бит из младшего байта данных, производим накопление (тысяч 50-500) таких битов, прогоняем на статистику, в том числе и критерий сериальной корреляции, и тип полученного распределения в выборке, радуемся генератору случайных чисел с нормальным распределением:




Видеоподкаст
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 21.02.2013, 15:48   #4
alex(21)
Форумчанин
 
Аватар для alex(21)
 
Регистрация: 09.06.2009
Сообщений: 545
По умолчанию

Цитата:
...точно случайный, а не псевдослучайный?
я образно выразился псевдослучайный нужен.
Цитата:
Код:
IndexOutOfBoundsException();
выводит ошибку (пропущена директива using или ссылка на сборку)
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
может чего то не хватает? или я вставил код не в то место?
Код:
 class Program
    {
        char Simbol(int num)
        {
            if(num<0 ||num>=26) throw new IndexOutOfBoundsException();
            return "ABCDEFGHIJKLMNOPQRSTUVWXYZ"[num];
        }
        static void Main(string[] args)
        {
......................
        }
alex(21) вне форума Ответить с цитированием
Старый 21.02.2013, 16:17   #5
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Да, пардон, в C# оно называется IndexOutOfRangeException. Собственно, если смысл кода понятен, могли бы и сами на что-нибудь другое заменить.
Abstraction вне форума Ответить с цитированием
Старый 22.02.2013, 09:44   #6
Mixim
Форумчанин
 
Регистрация: 29.10.2009
Сообщений: 259
По умолчанию

Цитата:
Сообщение от Abstraction Посмотреть сообщение
Код:
char NumberToAZ(int num){
  if(num<0 || num>=26) throw new IndexOutOfBoundsException();
  return "ABCDEFGHIJKLMNOPQRSTUVWXYZ"[num];
}
А не проще ли будет просто задать максимальное (Max) и минимальное (Min) число, генерируемое Random'ом, где Max='Z', а Min='A' (берем Unicode от букв) и все? Таким образом никаких функций не надо
Из всех классических книг, посвященных программированию, ненавижу всего одну - русский перевод книги Роберта Седжвика-"Фундаментальные алгоритмы C++". Предпочитаю читать её в оригинале.
Mixim вне форума Ответить с цитированием
Старый 22.02.2013, 10:46   #7
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
А не проще ли будет просто задать максимальное (Max) и минимальное (Min) число, генерируемое Random'ом, где Max='Z', а Min='A' (берем Unicode от букв) и все? Таким образом никаких функций не надо
Если Вы уверены, что символы от A до Z образуют непрерывный диапазон - в чём-то проще. Только даже в этом случае лучше оставить этот фокус внутри метода вида RandomAZ. Но диапазон символов в исходном сообщении точно не является непрерывным...
Abstraction вне форума Ответить с цитированием
Старый 26.02.2013, 22:53   #8
alex(21)
Форумчанин
 
Аватар для alex(21)
 
Регистрация: 09.06.2009
Сообщений: 545
По умолчанию

Все, разобрался. всем спасибо за помощь
alex(21) вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Генератор случайных чисел remont_it, C++ Builder 1 12.05.2012 21:11
генератор случайных величин Dane4ka Помощь студентам 6 13.04.2011 20:10
Генератор случайных чисел Evgenii(Евгений) Помощь студентам 6 23.01.2011 22:41
C++ генератор случайных чисел sir.andrey Помощь студентам 4 03.09.2010 12:22
генератор случайных чисел на С++ ANTI Общие вопросы C/C++ 20 12.04.2009 13:02