Is there are exactly one partition, given length of partition and maximum number?
Python 2, 38 bytes
lambda n,k,m:m>n-k<2or-1<k*m-n<2+2/m*k
Try it online!
Characterizes the cases where there's only one legal partition.
Consider the partitions of \$n\$ into exactly \$k\$ parts each between \$1\$ and \$m\$ inclusive. There's only two ways to for there to be only one such partition.
- The number \$n\$ is close to as small as possible (\$n=k\$ or \$n=k+1)\$ or as large as possible (\$n=mk-1\$ or \$n=mk)\$ for such a partitions. This leave only enough "wiggle room" for only one partition in each case:
- \$n=1+1+\cdots +1+1\$.
- \$n=2+1+\cdots+1+1\$.
- \$n=m+m+\cdots+m+(m-1)\$.
- \$n=m+m+\cdots+m+m\$.
- We allow only \$m=2\$ maximum, forcing a unique partition made of 1's and 2's. Such a partition requires \$k \leq n \leq 2k\$.
The challenge lets us assume that \$n>k\$, so we can omit the \$n=k\$ case and \$k \leq n\$ check, and, as feersum observed, can let us check \$n=k+1\$ as \$n<k+2\$. The \$m=1\$ case makes it impossible to make a partition with \$n>k\$, so we make sure it's always rejected. This gives the condition
\$n \in \{ k+1, mk-1, mk\}\$and \$ m>1\$, or \$n \leq 2k \$ and \$m=2\$
Wolfram Language (Mathematica), 39 38 bytes
-1: first argument > other arguments (no length-1 partitions)
1==Tr[1^IntegerPartitions[#,{#2},#3]]&
Try it online!
Jelly, (10?) 11 bytes
Œṗṁ«⁵ɗƑƇL⁼1
A full program which accepts N numberOfParts maximalSizeOfAnyPart
as arguments and prints 1
if exactly one solution exists and 0
otherwise.
Try it online!
How?
Œṗṁ«⁵ɗƑƇL⁼1 - Main Link: N, numberOfParts
Œṗ - integer partitions (of N)
Ƈ - keep those (P) for which:
Ƒ - is invariant under:
ɗ - last three links as a dyad - i.e. f(P, numberOfParts):
ṁ - mould (P) like (numberOfParts)
⁵ - 3rd argument (maximalSizeOfAnyPart)
« - minimum (vectorises)
L - length
1 - literal one
⁼ - equal?
- implicit print
If we may print 1
if exactly one solution exists and 0
OR nothing otherwise then Œṗṁ«⁵ɗƑƇMỊ
is a 10 byte full program.