「2.7,-7/3,-3,√6 の中で,絶対値が最も大きい数を選びなさい。」を wolframalphaとsympyでやってみたい。

令和4年青森県高校入試問題【１】(3)

#### パイソニスタの方へ
リスト内包表記？ もっと短くなる方法をアドバイスいただけると幸いです。
数直線上で表してみたい。
以下「私の勉強中」ばかりで申し訳ありません。

# 問題
ページ後半で**改題**も考えました。
「[共通テスト2023数学ⅠA【１】［１］絶対値](https://mathexamtest.web.fc2.com/2023/202310000/2023100000100mj.html)」対策になるとうれしいです。

```
2.7, -7/3, -3, √6 の中で,絶対値が最も大きい数を選びなさい。
```

# 公式ホームページ
【１】(3)

https://www.pref.aomori.lg.jp/soshiki/kyoiku/e-gakyo/files/R4suugaku-mondai.pdf#page=2

https://www.pref.aomori.lg.jp/soshiki/kyoiku/e-gakyo/sembatsur-4_nyuusenmondai.html

# 数学苦手な中学生応援します 様の問題と解答

(青森県を参照)
問題
http://homepage1.canvas.ne.jp/ynaka/R4/0402.html
解答
http://homepage1.canvas.ne.jp/ynaka/R4/04an1.html

＞数学苦手な中学生応援します 様 ポータル

https://qiita.com/mrrclb48z/items/ce23cf0a2a32593b6091#:~:text=bbs.fc2.com/-,%E3%80%8C,-%E6%95%B0%E5%AD%A6%E8%8B%A6%E6%89%8B%E3%81%AA

# wolframalphaで
**「小数と分数と負の数と平方根」と「絶対値」と組み合わせて、大小関係**
/@ が、wolframalphaで使えるとは思いませんでした。

https://www.wolframalpha.com/input?i=Abs+%2F%40+%5B2.7%2C-7%2F3%2C-3%2C%E2%88%9A6%5D&lang=ja

結果 {2.7, 7/3, 3, sqrt(6)}

https://www.wolframalpha.com/input?i=Max%5BAbs+%2F%40+%5B2.7%2C-7%2F3%2C-3%2C%E2%88%9A6%5D%5D&lang=ja

結果3 

#### Odering＜Mathematica
勉強中
https://reference.wolfram.com/language/ref/Ordering.html.ja?source=footer

# sympyで
勉強中

# 改題
```
2.7, -7/3, -3, √6 を、絶対値が小さい順に並べなさい。
```

#### wolframalphaで
勉強中

#### sympyで
bisectで実行しました。
-7/3, √6　を表示したい。(2023/06/16)

```python
from sympy import *
from bisect import *
from operator import itemgetter

class mySortedCollection(object):

    def __init__(self, iterable=(), key=None):
        self._given_key = key
        key = (lambda x: x) if key is None else key
        decorated = sorted((key(item), item) for item in iterable)
        self._keys = [k for k, item in decorated]
        self._items = [item for k, item in decorated]
        self._key = key

    def __getitem__(self, i):
        return self._items[i]

    def insert(self, item):
        'Insert a new item.  If equal keys are found, add to the left'
        k = self._key(item)
        i = bisect_left(self._keys, k)
        self._keys.insert(i, k)
        self._items.insert(i, item)
#########################################################################
s = mySortedCollection(key=itemgetter(1))
myInput=['2.7','-7/3','-3','√6']
s = mySortedCollection(key=itemgetter(1))
for record in [
                (myInput[0], abs(2.7)    ),
                (myInput[1], abs(-7/3)   ),
                (myInput[2], abs(-3)     ),
                (myInput[3], abs(sqrt(6)))]:
               s.insert(record)
print("#",','.join(   myInput                    ) )
print("#",    2.7,abs(-7/3),abs(-3),float(sqrt(6)) )                                    
print("#",','.join(  [r[0] for r in list(s)]     ) )
# 2.7,-7/3,-3,√6
# 2.7 2.3333333333333335 3 2.449489742783178
# -7/3,√6,2.7,-3
```
実行方法
①私の環境は,pycharmです。
②よく聞くのは、Jupyterです。
③web上で、上記のソースを「SymPy Live shell」に、コピー貼り付けでもできました。
黒背景の右上に、マウスを移動すると、コピーマークが発生します。
???　タブレット環境で、コピー貼り付けが実行できませんでした。???

https://live.sympy.org/

通信環境によっては、実行時間1分以上かかります。

# 参考

各要素の2番目の部分を比較してソートする：

https://reference.wolfram.com/language/ref/Sort.html.ja?source=footer

https://reference.wolfram.com/language/ref/Partition.html.ja?source=footer

https://reference.wolfram.com/language/ref/Riffle.html.ja?source=footer

/@

https://reference.wolfram.com/language/tutorial/FunctionalOperations.html.ja?source=footer

https://reference.wolfram.com/language/workflow/RemoveAllOutputFromANotebook.html.ja?source=footer


bisect

https://qiita.com/mrrclb48z/items/ca2b0440d643c12c9ac9


# おすすめ
＞(参考)Wolfram￨Alpha 開発物語

https://qiita.com/mrrclb48z/items/75904cdc6e84ecef4d03#%E5%8F%82%E8%80%83wolframalpha-%E9%96%8B%E7%99%BA%E7%89%A9%E8%AA%9E