Заказать игровой сервер Контакты (заказать плагин/исправить ошибки/другое) Пожертвовать Поиск

[ вход ]
[ последние сообщения ]

  • Страница 1 из 1
  • 1
[ЗАДАЧА] Размещение
TEIN Дата: Понедельник, 16.09.2013, 18:18:43 | Сообщение # 1
Сообщений: 563
Репутация: 78 [ +/- ]
Думаю, многие знают из курса алгебры про размещение. Кто не знает: Link

Так вот, создать функцию 'stock abc(a, b)', где a - Общее количество размещений, b - количество элементов
Формула должна помочь:
Код
  a
A   = b·(b−1)·(b−2) …(b−(a−1))
    b

Как-то так, видимо


Сообщение отредактировал TEIN - Понедельник, 16.09.2013, 18:20:01
 
Nintoler Дата: Среда, 02.10.2013, 18:50:47 | Сообщение # 2
Сообщений: 15
Репутация: 0 [ +/- ]
Наверное, я примитивен чтобы понять саму суть этого.)
 
TEIN Дата: Пятница, 04.10.2013, 08:19:29 | Сообщение # 3
Сообщений: 563
Репутация: 78 [ +/- ]
Допустим
Код
   3
A    = 4 * (4 - 1) * (4 - 2) * (4 - 3) = 4 * 3 * 2 * 1 = 24
    4

//

    4
A    = 10 * (10 - 1) * (10 - 2) * (10 - 3) = 10 * 9 * 8 * 7 = 5040
    10
 
Nintoler Дата: Пятница, 04.10.2013, 13:14:27 | Сообщение # 4
Сообщений: 15
Репутация: 0 [ +/- ]
Не знаю правильно ли я тебя понял, но вот как-то так.

Код

stock abc(a, b)
{
  new x = b;
  for(new i=1;i<a;i++)
  {
   x = x*(b-i);
  }
}
 
TEIN Дата: Пятница, 04.10.2013, 16:55:36 | Сообщение # 5
Сообщений: 563
Репутация: 78 [ +/- ]
Нет, число получится совсем иное, можешь проверить даже
 
Nintoler Дата: Пятница, 04.10.2013, 19:24:15 | Сообщение # 6
Сообщений: 15
Репутация: 0 [ +/- ]
Код
#include <sourcemod>

public OnPluginStart()
{
new a=6;
new b=15;
abc(a, b);
a=6;
b=8;
abc(a, b);
a=4;
b=10;
abc(a, b);
}

stock abc(a, b)
{
  new x = b;
  for(new i=1;i<a;i++)
  {
   x = x*(b-i);
  }
  PrintToServer("--> %d", x);
}


Вроди все правельно, ответы:

-->3603600

-->20160
И вот твой пример:
-->5040

Может я формулу не понял(что скорея всего вероятно), а так делал все по твоему последнему примеру. dumaem
 
  • Страница 1 из 1
  • 1
Поиск: