Автор Тема: Помогите ришить задачу, задать массив ...  (Прочитано 2011 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Yomka

  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
В копилке было 100 советских монеток достоинством в 1, 2, 3, 5, 10, 15, 20 и 50 копеек задайте массив M(100) случайным образом из этого набора  а затем подсчитайте сколько в копилке было пята чков и полтинников и какова общая сумма накопленного


Помогите пожалуйсто!
« Последнее редактирование: 28 Февраля 2012, 00:54:42 от Asix »

Оффлайн tig81

  • Глобальный модератор
  • *****
  • Сообщений: 15181
    • Просмотр профиля
Re: Помогоите ришить задачу
« Ответ #1 : 16 Февраля 2012, 13:31:36 »
Выкладывайте свой код с указанием ошибок.

Оффлайн BaVic

  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Re: Помогоите ришить задачу
« Ответ #2 : 18 Февраля 2012, 18:41:18 »
Какой язык программирования то?

Оффлайн sp

  • Пользователь
  • **
  • Сообщений: 51
    • Просмотр профиля
Re: Помогоите ришить задачу
« Ответ #3 : 21 Февраля 2012, 16:21:47 »
Алгоритм решения мне не понятен. Ну будет у нас 100 случайных чисел и что с ним делать?
Думается так. Будем решать другую задачу. У нас равновероятны 8 событий (выпадение любой из 8 монет). Возьмём случайные числа в пределах (0 .. 1). Потом суммируем 8 чисел. Сумма пусть равна 3.815. Возьмём коэфф приведения к=100/3.815 и умножим каждое выпадение на этот коэф. Пусть для копейки (первое число) было 0.1234. тогда из суммы в сто монет получим 3.2346 монеты. 1.5 землекопа нам никто не выделит. Округляем. Получается 3 шт. однокопеечных монет. Всего получим 98 монет. Нехватка 2 монет. В какую кучку распределить эти монеты? Опять кости кидать? Что-то хитроумно...
Коллеги, кто что скажет?

Оффлайн Selyd

  • Старожил
  • ****
  • Сообщений: 408
    • Просмотр профиля
Re: Помогоите ришить задачу
« Ответ #4 : 22 Февраля 2012, 00:08:31 »
Стандартный генератор даёт числа на [0; 1]. У нас 8 монет. Делим интервал [0; 1] на 8 отрезков.
Запускаем генератор на 100 обращений. На какой отрезок попало число, такая и монетка.
Набрало 100 монет, а далее дело техники.

Оффлайн sp

  • Пользователь
  • **
  • Сообщений: 51
    • Просмотр профиля
Re: Помогоите ришить задачу
« Ответ #5 : 22 Февраля 2012, 08:35:06 »
Поскольку Selyd всё описал (я правда сам понял, что да как, только после драки молчать надо), остаётся рабочую прогу написать.
Прога проверена на VC++ 2008 Express. (свободная, бесплатная)

Оффлайн tig81

  • Глобальный модератор
  • *****
  • Сообщений: 15181
    • Просмотр профиля
Re: Помогоите ришить задачу
« Ответ #6 : 22 Февраля 2012, 11:13:33 »
ТС неинтересно, последняя активность была сразу после написания вопроса, больше он на форум не заходил

Оффлайн sp

  • Пользователь
  • **
  • Сообщений: 51
    • Просмотр профиля
Re: Помогоите ришить задачу
« Ответ #7 : 27 Февраля 2012, 19:09:44 »
Пока на разделе затишье, предлагаю обсудить новый код программы. Различия.
1. Добавлен #include <vector>
2. Заменён #define на более правильный const int
3. Описатель String исключён. Он используется один раз и не нужен.
4. В коэфф масштабирования случайных чисел исключена +1. В MDSN она есть, больше нигде в литературе не встречал. По логике, вроде не нужна.
5. Массив sm[] заменён на вектор sm() с занулением. Так, ИМХО, современнее.
6. В стоку вывода добавлен gcnew String(..) сразу. Без предварительного запоминания в String s. Код короче.
Проверено в VC++ 2010 Express. Работает  :D.
« Последнее редактирование: 27 Февраля 2012, 19:15:12 от sp »