

①sympyのUnionの中のInterval範囲の個数は、いくつになりますか？  
②これでいいですか。「Union→Interval→Union」をしてみました。  
よろしくお願いします。

[code]

    from sympy import *
    k = Symbol('k')
    ineq = 'k**2-40>0'
    ans1=solve_univariate_inequality(sympify(ineq), k, relational=False)
    print('#',ineq,':',ans1)
    my_Union0=list(ans1.args[0:1])[0]
    my_Union1=list(ans1.args[1:2])[0]
    print('# my_Union0 :',my_Union0)
    print('# my_Union1 :',my_Union1)
    ans2=my_Union0.union(my_Union1)
    print('# 元に戻す  :',ans2)
    # k**2-40>0 : Union(Interval.open(-oo, -2*sqrt(10)), Interval.open(2*sqrt(10), oo))
    # my_Union0 : Interval.open(-oo, -2*sqrt(10))
    # my_Union1 : Interval.open(2*sqrt(10), oo)
    # 元に戻す　 : Union(Interval.open(-oo, -2*sqrt(10)), Interval.open(2*sqrt(10), oo)
    
[/code]


CC BY-SA 4.0
2021-02-25T11:51:33.543
74277
2021-02-26T19:30:45.597
2021-02-26T19:29:12.853
17199
17199
question
python sympy
sympyのUnionの中のInterval範囲の個数は、いくつになりますか？


Unionの中のIntervalが2個以上ならカウントできていると,多分思います。  
問題①Intervalが,1個の時？  
問題②pythonのループの使い方を教えて下さい。  
追加の質問よろしくお願いします。

(参考)  
<https://stackoverflow.com/questions/60917259/sympy-get-constituent-subsets-
from-union>

[code]

    from sympy import *
    k = Symbol('k')
    ineq = 'k**2-40>0'
    my_Union=solve_univariate_inequality(sympify(ineq), k, relational=False)
    print('#',my_Union)
    n=0
    total_list = []
    for subset in my_Union.args:
        n=n+1
        total_list.append(subset)
    
    for i in range(n):
        # print(i)
        if i==0:
           my_Union2=total_list[i]
        else:
           my_Union2=my_Union2+total_list[i]
    print('#',my_Union2)
    print('#',n)
    # Union(Interval.open(-oo, -2*sqrt(10)), Interval.open(2*sqrt(10), oo))
    # Union(Interval.open(-oo, -2*sqrt(10)), Interval.open(2*sqrt(10), oo))
    # 2
    
[/code]


CC BY-SA 4.0
2021-02-26T10:14:57.867
74289
2021-02-26T19:30:45.597
2021-02-26T19:30:45.597
17199
17199
74277
answer