This notebook plots Schroeder Figure 3.1

Remove["Global`*"]

First define the multiplicity function

Ω[NX_,q_]=Binomial[q+NX-1,q];

Set up the variables corresponding to the figure

qTot=100;
NA=300;
NB=200;
qA=Range[0,qTot];
qB=qTot-qA;
ΩA=Ω[NA,qA];
ΩB=Ω[NB,qB];
ΩTot=ΩA ΩB;

SA=Log[ΩA];
SB=Log[ΩB];
STot=SA+SB;

Make the table shown in Table 3.1

qAi1={1,2,3};
qAi2={12,13,14};
qAi3={60,61,62};
qAi4={100,101};
Grid[Transpose[{
qA[[qAi1]],N[ΩA[[qAi1]],2],N[SA[[qAi1]],2],
qB[[qAi1]],N[ΩB[[qAi1]],2],N[SB[[qAi1]],2],
N[ΩTot[[qAi1]],2],N[STot[[qAi1]],2]}]]
Grid[Transpose[{
qA[[qAi2]],N[ΩA[[qAi2]],2],N[SA[[qAi2]],2],
qB[[qAi2]],N[ΩB[[qAi2]],2],N[SB[[qAi2]],2],
N[ΩTot[[qAi2]],2],N[STot[[qAi2]],2]}]]
Grid[Transpose[{
qA[[qAi3]],N[ΩA[[qAi3]],2],N[SA[[qAi3]],2],
qB[[qAi3]],N[ΩB[[qAi3]],2],N[SB[[qAi3]],2],
N[ΩTot[[qAi3]],2],N[STot[[qAi3]],2]}]]
Grid[Transpose[{
qA[[qAi4]],N[ΩA[[qAi4]],2],N[SA[[qAi4]],2],
qB[[qAi4]],N[ΩB[[qAi4]],2],N[SB[[qAi4]],2],
N[ΩTot[[qAi4]],2],N[STot[[qAi4]],2]}]]

Plot the entropy values

Show[
ListLinePlot[Transpose[{qA,STot}],
PlotRange->{{0,100},{0,300}},PlotStyle->Black],
ListLinePlot[Transpose[{qA,SA}],
PlotRange->{{0,100},{0,300}},PlotStyle->Red],
ListLinePlot[Transpose[{qA,SB}],
PlotRange->{{0,100},{0,300}},PlotStyle->Blue]]

Now plot the derivative of the entropy values

Show[
ListLinePlot[Transpose[{qA[[1;;100]],N[Differences[STot]]}],
PlotRange->{{0,100},{-3,3}},PlotStyle->Black],
ListLinePlot[Transpose[{qA[[1;;100]],N[Differences[SA]]}],
PlotRange->{{0,100},{-3,3}},PlotStyle->Red],
ListLinePlot[Transpose[{qA[[1;;100]],N[Differences[SB]]}],
PlotRange->{{0,100},{-3,3}},PlotStyle->Blue]]