statements-manager icon indicating copy to clipboard operation
statements-manager copied to clipboard

指数表記の制約に対応する

Open tsutaj opened this issue 3 years ago • 1 comments

制約で $2^{N}$ や $3^{M}$ などを書きたくなるときがあるが、現状のコードではいい感じに用意することが出来ない (問題文用の変数 (文字列) と、ジェネレータ用の変数 (数値) を用意する手はあるが、ツールの意味がない)

今の機構だけだと対応不可能なので、何らかの機構を追加してこれに対応したい

  • Python の eval()
    • 出来るけどセキュリティ的に大問題そう。やるべきでない
  • Sympy の parse_expr()
    • どうやらこれもセキュリティ的に問題がありそうなので使うべきでなさそう。
  • ast を使う
    • https://stackoverflow.com/questions/2371436/evaluating-a-mathematical-expression-in-a-string を見ていた。許容する演算子を自分で指定できるのでよさそう。

tsutaj avatar Sep 13 '21 06:09 tsutaj