Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Задачка, 6 человек на 4 стула 
V
    Опции темы
agentjamesbolt007
Дата 5.9.2012, 09:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 5.9.2012

Репутация: нет
Всего: нет



Задача: нужно посчитать все возможные размещения  n-го количество человек за n-m количеством стульев, причем стульев должно быть меньше чем людей. Формула такая; например чтобы рассадить 6 чел. на 4 стула нужно : 6*5*4*3 = 120


Код

#include <iostream>
using namespace std;

int main()
{  
    int odin =1;
    int gos, mesta;
    cout <<"Vvedite chislo gostey:";
    cin >>gos;
    cout <<"Vvedite chislo mest:";
    cin >>mesta;
    for(j =gos; j >0; j--)     //здесь будет идти умножение с введенного числа до еденицы, а мне
      odin *= j;                       //нужно до количества стульев, непойму как обрезать лишнее умножение ???
    cout <<odin;
    return 0;
}


здесь умножение будет идти от заданного числа до конца, а мне нужно только на кол-во мест , непойму как обрезать лишнее умножение, нужно второй цикл писать или можно как то в одном все поставить???

Это сообщение отредактировал(а) agentjamesbolt007 - 5.9.2012, 09:46
PM MAIL   Вверх
bsa
Дата 5.9.2012, 10:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Код
for(; mesta > 0; --mesta)
   odin *= gos--;


Это сообщение отредактировал(а) bsa - 5.9.2012, 10:34
PM   Вверх
borisbn
Дата 5.9.2012, 11:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 21
Всего: 135



agentjamesbolt007, есть подозрение, что формула неправильная. Откуда взялось умножение?
У меня для 6 гостей и 4 стульев получилось
5+4+3+2+1 = 15


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
bsa
Дата 5.9.2012, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



borisbn, вообще-то правильно используется умножение. У тебя 6 вариантов посадки на первый стул, после этого остается 5 вариантов на второй, 4 - на 3-й и 3 на 4-й. Итого: 6*5*4*3
PM   Вверх
math64
Дата 5.9.2012, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 12
Всего: 72



Если убрать условие, что гостей больше, чем стульев то будет так:
Код

int variants(int gests, int places) {
int res = 1;
if (gests > places) {
  while(places > 0) {
    res *= gests; // садим на свободный стул одного из гостей без места
    gests--;
    places--;
  }
} else {
  while(gests > 0) {
    res *= places; // гость выбирает один из свободных стульев
    gests--;
    places--;
  }
}
return res;
}

Вариантов может оказаться слишком много (факториал растёт быстро), возможно переполнение.
Может быть использовать double для результата?

Это сообщение отредактировал(а) math64 - 5.9.2012, 12:35
PM   Вверх
agentjamesbolt007
Дата 5.9.2012, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 5.9.2012

Репутация: нет
Всего: нет



Спасибо!
PM MAIL   Вверх
borisbn
Дата 5.9.2012, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 21
Всего: 135



Цитата(bsa @  5.9.2012,  11:53 Найти цитируемый пост)
вообще-то правильно используется умножение

хммм. а где тогда ошибка в моих рассуждениях ?
Стоят всегда двое. Вот варианты:
1) 1-й и 2-й
2) 1-й и 3-й
3) 1-й и 4-й
4) 1-й и 5-й
5) 1-й и 6-й
6) 2-й и 3-й
7) 2-й и 4-й
8) 2-й и 5-й
9) 2-й и 6-й
10) 3-й и 4-й
11) 3-й и 5-й
12) 3-й и 6-й
13) 4-й и 5-й
14) 4-й и 6-й
15) 5-й и 6-й


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
bsa
Дата 5.9.2012, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



1.1.1.1)1234
1.1.1.2)1235
1.1.1.3)1236
1.1.2.1)1243
1.1.2.2)1245
1.1.2.3)1246
....
2.1.1.1)2134
2.1.1.2)2135
2.1.1.3)2136
....
6.5.4.1)6541
6.5.4.2)6542
6.5.4.3)6543

Это сообщение отредактировал(а) bsa - 5.9.2012, 15:59
PM   Вверх
math64
Дата 6.9.2012, 08:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 12
Всего: 72



borisbn, Ваш способ подсчета не учитывает порядок, в котором сидят сидящие.
Ваш ответ получается так 6!/(4!*2!). Ответ нужный ТС - 6!/2!

PM   Вверх
bsa
Дата 6.9.2012, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196




M
bsa
agentjamesbolt007, если ответ на вопрос получен, то пометь тему решенной

PM   Вверх
borisbn
Дата 6.9.2012, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 21
Всего: 135



Ваш способ подсчета не учитывает порядок, в котором сидят сидящие

из условий задачи не следует что это должно учитываться


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
bsa
Дата 6.9.2012, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Цитата(borisbn @  6.9.2012,  15:30 Найти цитируемый пост)
из условий задачи не следует что это должно учитываться 

Но из условия не следует и обратное. Поэтому, используется формула ТС.
PM   Вверх
agentjamesbolt007
Дата 6.9.2012, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 5.9.2012

Репутация: нет
Всего: нет



borisbn, 
bsa, 

да ладно вам , это не суть )))
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0544 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.