statements-manager
statements-manager copied to clipboard
指数表記の制約に対応する
制約で $2^{N}$ や $3^{M}$ などを書きたくなるときがあるが、現状のコードではいい感じに用意することが出来ない (問題文用の変数 (文字列) と、ジェネレータ用の変数 (数値) を用意する手はあるが、ツールの意味がない)
今の機構だけだと対応不可能なので、何らかの機構を追加してこれに対応したい
- Python の
eval()
- 出来るけどセキュリティ的に大問題そう。やるべきでない
- Sympy の
parse_expr()
- どうやらこれもセキュリティ的に問題がありそうなので使うべきでなさそう。
-
ast
を使う- https://stackoverflow.com/questions/2371436/evaluating-a-mathematical-expression-in-a-string を見ていた。許容する演算子を自分で指定できるのでよさそう。