普通に計算できると嬉しいねってあれ。
$a\in\mathbb{Z}$、$x,p\in\mathbb{R}$、$q\in\mathbb{R}_{>0}$とする。無駄な設定になってるのは気にしてはいけない$$\big[\big[x\times p\big]\times q\big]=a\iff a\leq\big[x\times p\big]\times q<a+1
\\\iff\frac{a}{q}\leq\big[x\times p\big]<\frac{a+1}{q}$$ここから更に$x$にかかったガウス記号を外したい。
$$\frac{a}{q}\leq\big[x\times p\big]\iff\left\{\begin{array}{l}
\frac{a}{q}\leq\big[x\times p\big]\iff\frac{a}{q}\leq x\times p\ \big(\frac{a}{q}\in\mathbb{Z}\big)
\\\big[\frac{a}{q}\big]+1\leq\big[x\times p\big]\iff\big[\frac{a}{q}\big]+1\leq x\times p\ \big(\frac{a}{q}\not\in\mathbb{Z}\big)
\end{array}\right.
\\\big[x\times p\big]<\frac{a+1}{q}\iff\left\{\begin{array}{l}
\big[x\times p\big]\leq\frac{a+1}{q}-1\iff x\times p<\frac{a+1}{q}\ \big(\frac{a+1}{q}\in\mathbb{Z}\big)
\\\big[x\times p\big]\leq\big[\frac{a+1}{q}\big]\iff x\times p<\big[\frac{a+1}{q}\big]+1\ \big(\frac{a+1}{q}\not\in\mathbb{Z}\big)
\end{array}\right.$$
あとは頑張って実装してください(投げ遣り
計算間違ってないよね…
一応場合分けしてるけど場合分けなしでの実装もできます。
あ、最後に個体値範囲(0-31)との共通部分とるのを忘れずに。
$a\in\mathbb{Z}$、$x,p\in\mathbb{R}$、$q\in\mathbb{R}_{>0}$とする。
\\\iff\frac{a}{q}\leq\big[x\times p\big]<\frac{a+1}{q}$$ここから更に$x$にかかったガウス記号を外したい。
$$\frac{a}{q}\leq\big[x\times p\big]\iff\left\{\begin{array}{l}
\frac{a}{q}\leq\big[x\times p\big]\iff\frac{a}{q}\leq x\times p\ \big(\frac{a}{q}\in\mathbb{Z}\big)
\\\big[\frac{a}{q}\big]+1\leq\big[x\times p\big]\iff\big[\frac{a}{q}\big]+1\leq x\times p\ \big(\frac{a}{q}\not\in\mathbb{Z}\big)
\end{array}\right.
\\\big[x\times p\big]<\frac{a+1}{q}\iff\left\{\begin{array}{l}
\big[x\times p\big]\leq\frac{a+1}{q}-1\iff x\times p<\frac{a+1}{q}\ \big(\frac{a+1}{q}\in\mathbb{Z}\big)
\\\big[x\times p\big]\leq\big[\frac{a+1}{q}\big]\iff x\times p<\big[\frac{a+1}{q}\big]+1\ \big(\frac{a+1}{q}\not\in\mathbb{Z}\big)
\end{array}\right.$$
あとは頑張って実装してください(投げ遣り
一応場合分けしてるけど場合分けなしでの実装もできます。
あ、最後に個体値範囲(0-31)との共通部分とるのを忘れずに。