[過去ログ] 初心者の質問相談にやさしく答えるスレ Part13 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
933: 2022/09/14(水)10:31 ID:pvN74f9n(1) AAS
>>930
うちのsshdは、活きてるセッションは切れないぞ
934: 2022/09/18(日)17:45 ID:NlTrvOcz(1/4) AAS
9999999999999999999999999999999999のような多桁の自然数を入力値とし、
桁数の多い整数計算しようとしています。そのため、プログラミングし変数(多桁
整数)をbcへ渡す、bcの計算結果である多桁整数を受け取ることを考えています。
ただ、CやJavaの整数型では上限が小さすぎ、bcとは多桁整数をやりとりできず破綻
すると思うので、今は変数の型宣言が不要なbashで、次のような形で多桁整数を
変数としてbcとやりとりしています。
これが、えらく遅いです。早くするための改善点を教えてください。
echo "999999999999999999999999" > /dev/shm/DATA01
DATA01=`cat /dev/shm/DATA01`
while *****
省5
935: 2022/09/18(日)17:51 ID:6O6+AtNd(1/2) AAS
任意制度演算とか多倍長整数でググれ的な話ではなくて?
936: 2022/09/18(日)18:02 ID:NlTrvOcz(2/4) AAS
上のコードは、任意精度演算をbc側にまかせたつもりです。(勘違いしてたらごめん)
DATA01=`cat /dev/shm/DATA01` の繰り返しが遅い原因かと思い、回避策を探したんですけど
そうか任意精度演算に由来する遅さに思えてきました。
比較してみます。
937: 2022/09/18(日)18:59 ID:4YaHJXqn(1) AAS
書いてある情報だけだと
echo " $DATA01 ^ 2 " | bc > /dev/shm/DATA01
DATA01=`cat /dev/shm/DATA01`
を
DATA01=`echo "$DATA01 ^ 2" | bc`
にまとめるとか
bashをdashにするとかぐらいしか思いつかないな
bashやzshの拡張$(( ))で計算させると当たり前のようにオーバーフローしたのでbcは必要に思う
938: 934、936 2022/09/18(日)19:32 ID:NlTrvOcz(3/4) AAS
bash内で10桁程度の整数演算を、bc使うスクリプトと使わないもので比較したら、
bc側が遅いというのは確認できました。
DATA01=`cat /dev/shm/DATA01`がどれくらい足を引っ張っているかは不明。
937さんのものも試してみます。
939: 2022/09/18(日)20:41 ID:6O6+AtNd(2/2) AAS
シェルスクリプトは好きじゃないからプロファイルの取り方とか知らんしよくわからんけど
bc自体が遅いというよりはループの中で毎回別プロセスのbc実行してパイプやらリダイレクトやらしてるから遅いんじゃないのかしら?
940: 934、936 2022/09/18(日)20:52 ID:NlTrvOcz(4/4) AAS
echo " $DATA01 ^ 2 " | bc > /dev/shm/DATA01
DATA01=`cat /dev/shm/DATA01`
をやめ
DATA01=`echo "$DATA01 ^ 2" | bc`
としたら、早くなりました。dashへの置き換えは試せていません。
ありがとうございます。
941(1): 2022/09/18(日)22:47 ID:+q8tSHJu(1) AAS
Pythonのほうが楽そう
桁数無制限じゃなかったっけ
942: 2022/09/18(日)23:00 ID:kOZJktfh(1) AAS
十進BASIC Linux版でいいんじゃね?知らんけど
943(1): 2022/09/19(月)11:16 ID:2HiSkxFg(1) AAS
>>941
桁数の制限とどこまで正しい精度が出るかは別の話なのでPythonのint, floatはあんまりそういう用途には使えないよ
944(1): 2022/09/19(月)19:10 ID:UEPx96ZP(1) AAS
整数計算なら誤差はでないでしょ
945: 2022/09/19(月)21:28 ID:z1YrsBFH(1) AAS
>>944
>>943はPythonのintを徹底的に調べて>>943に至ったんだろ
946(1): 2022/09/26(月)12:44 ID:94ZjMzSX(1/6) AAS
MXlinux使用
デフォルトターミナルでapt-get upgradeで更新した時のこと
途中で「grubの設定ファイルが新しいものに更新されます」みたいに表示された
Dの差異を表示するを選択したら差異が表示されたがそこから元に戻れなくなった
Q.どうすれば元に戻れたのか?
947: 2022/09/26(月)13:01 ID:8228p7a6(1) AAS
文章から判断すると答えは946様の脳内にしか存在しないかと
日記をつけるおつもりであればご遠慮願います
948: 2022/09/26(月)14:07 ID:94ZjMzSX(2/6) AAS
ここは人の質問を日記認定する場所ではないのでお引き取りください
949(2): 2022/09/26(月)14:12 ID:e27qZJPi(1) AAS
>>946
q と答えれば満足か
950(1): 2022/09/26(月)20:43 ID:94ZjMzSX(3/6) AAS
>>949
結局再起動して対応したからもう検証できないけどq押してエンター押してたら直前に戻れたんですか?
951: 2022/09/26(月)20:55 ID:7Kbq0GVi(1) AAS
>>950
ご自身で再現されてはいかがでしょうか?阿Qさんw
952: 2022/09/26(月)20:57 ID:94ZjMzSX(4/6) AAS
ずっと貼り付いてて草
上下前次1-新書関写板覧索設栞歴
あと 50 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.024s