The terms equitable or efficient need to be defined. And the action choices need to be specified. Suppose there are no other action choices and the players have to eat the share of cake they get. Let the utility/valuation of player $i$ be single-peaked/unimodal function $u_i(x_i)$ of his share $x_i$.

Suppose equitable goal focuses on the lowest utility players: allocation $a$ with utilities $(a_1,a_2,...,a_n)$ in increasing order is better than allocation $b$ with utilities $(b_1,b_2,...,b_n)$ in increasing order if there is a $k$ such that $a_k>b_k$ and $a_i=b_i$ for $i<k$. Here is an approach for most equitable allocation: Determine utility maximizing share $x_i$ for each player. If the sum of shares exceeds 1, some shares need to be reduced. If the sum of shares is less than 1, some shares need to be increased. Increase of decrease the shares of the players with highest utility while keeping their utility equal. For example, increase or decrease their shares until, sum of shares reaches 1 or if their utility reaches the level of the next highest utility. In the latter case, start adjusting shares of the new set of players with highest utilities. The algorithm can be made efficient.

Suppose efficient goal focuses on the sum of utilities: allocation $a$ with utilities $(a_1,a_2,...,a_n)$ in increasing order is better than allocation $b$ with utilities $(b_1,b_2,...,b_n)$ if $\sum_i{a_i}>\sum_i{b_i}$. The idea here is to equate marginal utilities.

First some notation. Assume utility functions are differentiable and concave. Define inverse of marginal utility functions $r_i(s)$ as $\mathrm{d}u_i(x_i)/dx_i\mid_{x_i=r_i(s)}=s$. If there are multiple solutions to the above equation choose highest for positive $s$ and lowest for negative $s$ (to be closest to peak). If $\mathrm{d}u_i(x_i)/dx_i<s\forall{x_i}$, choose $r_i(s)=0$.

Again start with utility maximizing share $x_i$ for each player. If the sum of shares exceeds 1 determine minimum $s>0$ such that $\sum_i{r_i(s)}=1$. If the sum of shares is less than 1 determine maximum $s<0$ such that $\sum_i{r_i(s)}=1$. The solution is $x_i=r_i(s)$. Kinks in utility function and noncaoncavity can be accomodated with little more work.

To be relevant economically, this problem needs more structure. Some thoughts:
(1) Free disposal assumption (players can costlessly dispose of piece of cake not needed) would ensure non-decreasing utility functions.
(2) There is no reason all players should get same weight. For example, if a person is always unhappy (utility function is below the utility functions of other players), equitable allocation to bring him up to others doesn't seem appropriate.
(3) If players could trade (had enough cash or any other commodity that they value identically), you could do any allocation and the players would trade to end up with the efficient allocation. Marginal utility $s$ would be the market price.