  In this paper, we study the problem of counting the number of different
knapsack solutions with a prescribed cardinality. We present an FPTAS for this
problem, based on dynamic programming. We also introduce two different types of
semi-fair allocations of indivisible goods between two players. By semi-fair
allocations, we mean allocations that ensure that at least one of the two
players will be free of envy. We study the problem of counting such allocations
and we provide FPTASs for both types, by employing our FPTAS for the prescribed
cardinality knapsack problem.
