TL; DR: Use as tabelas de pesquisa, porque não estamos mais no Kansas.
Vamos ver o mago ...
Apenas olhando para o assistente, parece haver uma progressão bastante regular. Você recebe o primeiro feitiço de nível de magia \ $ S \ $ quando seu nível de classe \ $ C \ $ satisfaz
\ begin {align} \ frac {C + 1} {2} & \ geq S & \ Leftrightarrow & & C-2S + 1 & \ geq 0 \ end {align}
A segunda, terceira e quarta mágica para cada nível são obtidas quando
\ begin {align} C-2S + 1 \ geq 1, C-2S + 1 \ geq3, C-2S + 1 \ geq 6 \ end {align}
Isso pode ser facilmente escrito como
$$ C-2S + 1 = \ sum_ {i = 1} ^ {k-1} i = \ frac {k (k-1)} {2} $$
Podemos resolver isso para \ $ k \ $, que produz
$$ k_S (C) = \ frac {1} {2} \ pm \ frac {1} {2} \ sqrt {1 + 8 (C-2S + 1)} $$
A solução correta aqui é aquela com o sinal positivo. Nós também temos que arredondar para baixo para o próximo inteiro. Finalmente, há um máximo de 4 para assistentes:
$$ k_S (C) = \ min \ left (4, \ left \ lfloor \ frac {1} {2} + \ frac {1} {2} \ sqrt {1 + 8 (C-2S + 1)} \ right \ rfloor \ right) $$
Se isso parece bastante razoável até agora, é porque ainda não leva em conta os desvios. Esta fórmula só vale para \ $ 1 \ leq S \ leq7 \ $. Os níveis de magia 0, 8 e 9 têm progressões ligeiramente diferentes (para terminar com 4 slots em todos os níveis de magia no nível 20), o que eu não estou indo nesta resposta (embora o nível de magia 0 possa ser obtido usando \ $ S = -0.5 \ $).
O mesmo cálculo também funciona para clérigos e druidas, com a exceção de que o limite é 5, exceto para magias de nível 0, que têm um limite de 6. Eu acho que as classes de nível 1 são simplesmente melhor.
A bruxa má do oeste feiticeira sinistra do sul
Se tentarmos adaptar isso ao feiticeiro, as coisas começam a ficar complicadas. A progressão é toda diferente, o máximo é aumentado para 6, há um mínimo de 3, a menos que seja 0. A progressão desviada (novos níveis de magia em níveis ímpares) faz com que o nível de magia 1 se desvie do padrão.
Para \ $ 2 \ leq S \ leq 8 \ $, temos
$$ k_S (C) = \ begin {casos} \ min \ left (6,3 + C-2S \ right) & C \ geq 2S \\ 0 & C < 2S \ end {casos} $$
O nível de magia 1 é compensado por um nível de classe, por isso
$$ k_1 (C) = \ min \ left (6,3 + C + 1-2S \ right) $$
Solte os macacos voadores
Agora vamos para onde a matemática quebra completamente: bardos. Não só a progressão da magia do Bardo é muito estranha, com exceções sendo tão comuns quanto regras, você agora também tem que lidar com 0 magias por dia sendo diferentes de "-" magias por dia.
Eu nem vou falar sobre Rangers e Paladins. Ou, você sabe, classes fora do PHB (como a Duskblade). Ou classes de prestígio (Sublime Chord vem à mente).
Conclusão: não vale a pena o esforço
Espero que isso mostre que, enquanto o WotC parece ter iniciado com um plano, as dezenas de variações para casos especiais dentro da mesma classe, bem como grandes diferenças entre os caracteres, fazem com que uma pesquisa table, uma estrutura aninhada if else ou case é a única maneira real de lidar com o problema.