Дискуссионный математический форумМатематический форум
Математический форум Math Help Planet

Обсуждение и решение задач по математике, физике, химии, экономике

Теоретический раздел
Часовой пояс: UTC + 3 часа [ Летнее время ]
новый онлайн-сервис
число, сумма и дата прописью

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: Разбиения натурального N на k частей
СообщениеДобавлено: 02 июн 2017, 05:11 
Не в сети
Одарённый
Зарегистрирован:
30 окт 2015, 02:45
Сообщений: 132
Cпасибо сказано: 7
Спасибо получено:
2 раз в 2 сообщениях
Очков репутации: 2

Добавить очки репутацииУменьшить очки репутации
Собственно вопрос звучит так:
Как найти количество разбиений для натурального N на ровно k частей?
Рекурентная формула P(N,k) = P(N-1, k-1) + P(n-k, k) приводит к очень громоздким вычислениям.
Если существует общий способ, то где ознакомится?
Если не существует, то посчитать конкретное значение при N = 201 и k = 21
Может есть ресурс, где значения P(N,k) при малых N и k найдены?

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Разбиения натурального N на k частей
СообщениеДобавлено: 02 июн 2017, 07:22 
Не в сети
Последняя инстанция
Зарегистрирован:
06 дек 2014, 09:11
Сообщений: 7070
Cпасибо сказано: 115
Спасибо получено:
1662 раз в 1508 сообщениях
Очков репутации: 283

Добавить очки репутацииУменьшить очки репутации
Volodislavir писал(а):
Может есть ресурс, где значения P(N,k) при малых N и k найдены?

Есть такой ресурс. Microsoft Excel называется.

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Разбиения натурального N на k частей
СообщениеДобавлено: 02 июн 2017, 13:25 
Не в сети
Последняя инстанция
Зарегистрирован:
06 июн 2013, 16:17
Сообщений: 2590
Cпасибо сказано: 104
Спасибо получено:
746 раз в 701 сообщениях
Очков репутации: 158

Добавить очки репутацииУменьшить очки репутации
Volodislavir писал(а):
Как найти количество разбиений для натурального N на ровно k частей?
Что значит разбить натуральное число на k частей?

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Разбиения натурального N на k частей
СообщениеДобавлено: 02 июн 2017, 16:11 
Не в сети
Последняя инстанция
Аватара пользователя
Зарегистрирован:
03 апр 2012, 03:09
Сообщений: 4112
Cпасибо сказано: 116
Спасибо получено:
1823 раз в 1515 сообщениях
Очков репутации: 379

Добавить очки репутацииУменьшить очки репутации
В Wolfram Mathematica есть функция
IntegerPartitions[n, {k}]

которая вычисляет эти числа, однако мой ноут безнадежно завис в попытках посчитать эту функцию при [math]n=201,\ k=21[/math], а в wolframalpha.com эта функция не работает. Но есть альтернативный подход!

По данной ссылке приведена производящая функция чисел [math]p(n,k)[/math], которой вполне можно воспользоваться. Выбираем нужное [math]k[/math], раскладываем соответствующую производящую функцию в ряд Маклорена и смотрим на коэффициент при [math]x^n[/math]. Слава богу, wolframalpha.com умеет раскладывать сложные функции в ряды.
Если [math]k=21[/math], то в wolframalpha.com вбиваем
series for x^(21)*(product 1/(1-x^i) for i=1 to 21) at x=0

и кликаем (около 7 раз) на "More terms" до тех пор, пока не появится член степени 201. Получаем: 110 075 207 481.

Вернуться к началу
 Профиль  
Cпасибо сказано 
За это сообщение пользователю Human "Спасибо" сказали:
3D Homer
 Заголовок сообщения: Re: Разбиения натурального N на k частей
СообщениеДобавлено: 02 июн 2017, 16:33 
Не в сети
Последняя инстанция
Аватара пользователя
Зарегистрирован:
03 апр 2012, 03:09
Сообщений: 4112
Cпасибо сказано: 116
Спасибо получено:
1823 раз в 1515 сообщениях
Очков репутации: 379

Добавить очки репутацииУменьшить очки репутации
Оказывается, эта функция работает и в wolframalpha.com, только в измененном виде. Достаточно написать
partitions of 201 with 21 parts

и все. :)

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Разбиения натурального N на k частей
СообщениеДобавлено: 02 июн 2017, 17:19 
Не в сети
Последняя инстанция
Зарегистрирован:
06 июн 2013, 16:17
Сообщений: 2590
Cпасибо сказано: 104
Спасибо получено:
746 раз в 701 сообщениях
Очков репутации: 158

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

import java.math.BigInteger;

public class Partitions {
public BigInteger[][] array = new BigInteger[25][250];

public Partitions() {
int k, n;

array[0][0] = BigInteger.ONE;

for (n = 1; n < array[0].length; n++)
array[0][n] = BigInteger.ZERO;

for (k = 1; k < array.length; k++) {
array[k][0] = BigInteger.ZERO;

for (n = 1; n <= k; n++)
array[k][n] = array[k-1][n-1];

for (n = k+1; n < array[k].length; n++)
array[k][n] = array[k-1][n-1].add(array[k][n-k]);
}
}

public static void main(String[] args) {
Partitions p = new Partitions();
System.out.printf("p_{%d}(%d) = %s%n", 21, 201, p.array[21][201].toString());
}
}

У меня получилось то же значение для [math]p_{21}{201}[/math].

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Разбиения натурального N на k частей
СообщениеДобавлено: 02 июн 2017, 21:58 
Не в сети
Beautiful Mind
Аватара пользователя
Зарегистрирован:
24 ноя 2016, 21:32
Сообщений: 1066
Откуда: Махачкала
Cпасибо сказано: 68
Спасибо получено:
190 раз в 177 сообщениях
Очков репутации: 34

Добавить очки репутацииУменьшить очки репутации
Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Разбиения натурального N на k частей
СообщениеДобавлено: 02 июн 2017, 22:08 
Не в сети
Одарённый
Зарегистрирован:
30 окт 2015, 02:45
Сообщений: 132
Cпасибо сказано: 7
Спасибо получено:
2 раз в 2 сообщениях
Очков репутации: 2

Добавить очки репутацииУменьшить очки репутации
Огромное спасибо!!

Вернуться к началу
 Профиль  
Cпасибо сказано 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему      Страница 1 из 1 [ Сообщений: 8 ]

 Похожие темы   Автор   Ответы   Просмотры   Последнее сообщение 
Исследовать ряд разбиения пространства

в форуме Ряды

vegin

1

328

15 ноя 2016, 00:11

Разбиения натуральных чисел

в форуме Теория чисел

ivashenko

12

754

04 апр 2019, 17:23

Разбиения на равновеликие подмножества

в форуме Интересные задачи участников форума MHP

Xenia1996

4

69

20 фев 2024, 17:13

Точки разбиения в интеграле методом Ньютона

в форуме Интегральное исчисление

dserp18

0

348

22 июн 2014, 00:53

Квадрат из 3 частей

в форуме Геометрия

mugga

19

766

20 янв 2021, 13:01

Объем шара и его частей

в форуме Геометрия

Olga1975

1

413

30 мар 2016, 21:27

Объем шара и его частей

в форуме Геометрия

Olga1975

0

267

30 мар 2016, 21:42

Длины частей верёвки

в форуме Алгебра

Ilya83

1

191

27 авг 2018, 19:57

Составить квадрат из трёх частей

в форуме Геометрия

3axap

33

805

08 сен 2020, 16:19

Найти площадь частей данных поверхностей

в форуме Интегральное исчисление

makc2299

1

235

16 сен 2019, 17:33


Часовой пояс: UTC + 3 часа [ Летнее время ]



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 20


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Яндекс.Метрика

Copyright © 2010-2023 MathHelpPlanet.com. All rights reserved