スレ立てるまでもない質問はここで 160匹目

■ このスレッドは過去ログ倉庫に格納されています
2022/05/10(火) 14:24:35.29ID:+9FnNLoT
この板はプログラムを作る人のための板です。
あらゆる質問はまず
スレ立てるまでもない質問はここで
スレにしてください。

次スレは>>980が立てること

【前スレ】
スレ立てるまでもない質問はここで 159匹目
https://mevius.5ch.net/test/read.cgi/tech/1644673480/
210デフォルトの名無しさん
垢版 |
2022/07/01(金) 22:34:08.26ID:9CxY9x+q
>>207
確かに昔と違って全社の共有資産ってよりは部署やチームごとに持ってたりするもんね
2022/07/02(土) 08:09:30.19ID:HQPdu60T
>>209
AWS特有の話になるけど、名前じゃなくてタグで管理するのがベストプラクティス
リソース名はAWSによって自動生成されるケースも多いから、統制しようとするのは不毛
2022/07/02(土) 08:59:07.25ID:BlvJqqP3
>>209
server naming + rules/conventions/schemesあたりで検索するとわんさか出てくるからいくつかピックアップして自分好みにアレンジすれば?

シスアドやOps系の板があるならそっちで聞いた方がいいかもしれない
213デフォルトの名無しさん
垢版 |
2022/07/03(日) 02:16:57.26ID:eBiTLgUz
整数だけを使って小数計算を実装する
アルゴリズムか何かかしりませんか?
2022/07/03(日) 02:56:44.59ID:0N7uLWTy
現代コンピュータがやってることって全て整数だよ
浮動小数点数も整数のマッピング
結局バイト列だから
215デフォルトの名無しさん
垢版 |
2022/07/03(日) 03:59:52.17ID:2unnqsUi
フォークを手渡すときは、手のひらを見せるのがマナー。
フォークで刺すと思われちゃうからね。

平林先生の出演する番組を見て、マナーは人々を不幸にするので、日本はマナーが必要ない国を目指すべきと思いました。

マナーがなければ、平林先生も刺されるとビクつかなくて済んだのでは?
マナーさえなければ、そこまで嫌われなかった。
先生もマナーの被害者ですよ。
加害者でもあるけど。
2022/07/03(日) 04:30:46.30ID:eTauYkOJ
>>213
有理数に限るのなら
途中計算はすべて分数にして
最後に一回だけ割り算をすれば
誤差が出ないね
2022/07/03(日) 06:02:48.51ID:lTV3tdss
>>213
いろいろなタイプ・レベルのものがあると思うけど、説明がそれだけだとなんとも

例えば素朴なやつ: 1.23/4.56なら1.23の桁をできるだけずらして(たとえば1230000000)、
それを456で割り、答えを表示するときに小数点の位置を適切にセットする
218デフォルトの名無しさん
垢版 |
2022/07/03(日) 11:56:43.83ID:/m/QsA1I
使える整数は符号付き32bitまで
その範囲でなるべく高い精度の小数を使った四則演算がしたい
可能であれば32bitを超える数値も扱いたい
そういった論文とかありそうなんだけどなー
2022/07/03(日) 13:18:20.56ID:eTauYkOJ
そこまで有効数字の桁数が必要なものは
ほとんどないのでは?
実用的なものがなんなのか
思いつかない
2022/07/03(日) 14:25:41.99ID:uWPRqyLy
FFT
221デフォルトの名無しさん
垢版 |
2022/07/03(日) 14:26:19.09ID:PqlrjItE
gmp
mpir
bcd
2022/07/03(日) 14:51:38.32ID:lTV3tdss
うん、なので結局多倍長計算がしたいということなのか、それとも「整数だけ」という
部分に違う意味やこだわりがあるのかという
2022/07/03(日) 17:00:42.93ID:eTauYkOJ
220も221も
実際の計算は
適当なところで切り上げるから
ほんとにそんな精度が必要なのか
というとちょっとね
2022/07/03(日) 17:20:54.20ID:TOuVsKxq
計算前に整数型をシフトする固定小数点は浮動小数点のコストが高かった頃からゲームでよく使われてたと思う
ゲームエンジンではいまだに使ってるだろうけど
225デフォルトの名無しさん
垢版 |
2022/07/03(日) 17:26:14.83ID:/m/QsA1I
>>219
ライブラリを作りたいだけなので
226デフォルトの名無しさん
垢版 |
2022/07/03(日) 17:27:24.13ID:/m/QsA1I
>>222
最低限小数の計算がしたい
なるべく何でもしたい
事情があって32bit符号付き整数しか使えない
自分で考えるの面倒だから、すでにそういう論文とか実装があるなら参考にしたい
2022/07/03(日) 17:33:05.40ID:uWPRqyLy
倍精度で計算してたのがFFT一発で単精度まで落ちるわけだ
単精度もありゃ十分じゃないかという立場をとるのはもちろん個人の自由だが
2022/07/04(月) 12:58:01.67ID:XwxrB+Iy
ライブラリを作るとして
結果出力は32bit整数なんですなね?
2022/07/04(月) 15:45:48.50ID:sXLedEol
何桁の有効数字が必要なのかを決めないと
倍精度か何か決められないと思うんだけどな
230デフォルトの名無しさん
垢版 |
2022/07/04(月) 16:13:23.20ID:sIsYIsrz
>>228
文字やで
2022/07/04(月) 19:12:03.81ID:gbxy9fI7
>>230
何文字なんですなね?
2022/07/04(月) 19:48:38.32ID:lOMBrPIF
>>226
まず、固定小数点演算については調べたの?
それじゃ満たせない要件はなんなの?
233デフォルトの名無しさん
垢版 |
2022/07/04(月) 21:50:01.83ID:sIsYIsrz
>>231
メモリの許す限りや
範囲を指定できるようにしてもええで

>>232
アルゴリズムを聞いてるんだから
何が満たせないかなんてわかるわけがない
234デフォルトの名無しさん
垢版 |
2022/07/04(月) 21:55:33.63ID:sIsYIsrz
なんか具体例書かないとわからないみたいだから書くよ

345256438989867340975.3498804523475890735 / 9850434535458464390.2988504385251831532

という数式文字列を32bit整数だけ使ってなるべく速く効率よく計算するアルゴリズムの名前を教えて
もちろん割り算だけじゃなくて、最低限四則演算ができる
2022/07/04(月) 22:08:44.78ID:VzaqPz19
>>234
筆算法+十進二進変換で地道にやるしかないのでは?
https://mevius.5ch.net/test/read.cgi/tech/1434079972/84
2022/07/04(月) 22:14:34.26ID:qmNLO+GW
>>234
そんなことして何に使うの?
なんのために必要なの?
2022/07/04(月) 22:17:07.08ID:lOMBrPIF
>>234
桁数がいくらでもというならBCD演算かな。
2022/07/04(月) 22:20:13.07ID:GZdyPg0J
JavaのBigDecimalじゃだめなの?
小数位2^32桁までしか計算できないけど
2022/07/04(月) 22:21:18.87ID:Fzsxp6Q8
>>237
また使えない技術を今さらのように挙げる馬鹿が現れた‥‥
BCD 演算を実装しているアーキが今でもあるとでもいうのか?
2022/07/04(月) 22:22:57.63ID:lOMBrPIF
いや BCD というより、1000000000進数表現がいいね。
10進数 9桁毎に区切って 32bitレジスタに入れて、多ワード筆算だよ。
2022/07/04(月) 22:23:24.53ID:lOMBrPIF
>>239
アーキとなんの関係があるんだ?
頭使えよ
2022/07/04(月) 22:23:33.00ID:s4VnFX4N
馬鹿が好きな言葉「馬鹿」
2022/07/04(月) 22:39:19.35ID:4K+vP+9I
>>241
へえ?アーキの支援なしにハーフキャリーすらない状況で手でちまちま書くのかい?というか、書いてみろよ、その BCD 演算とやらを
2022/07/04(月) 22:41:18.33ID:lOMBrPIF
>>243
お前の言ってるのは多分 packed BCD なんだろうな
245デフォルトの名無しさん
垢版 |
2022/07/04(月) 23:01:32.40ID:vMfPnVT6
ハゲが好きな言葉「ハゲ」
2022/07/04(月) 23:10:33.35ID:lOMBrPIF
>>243
お前頭悪くて >>237 から >>240 を読んでも分かってなさそうだし、ちょっと暇だから詳しく書いてやる。
BCD を使う目的は、10進数と 2進数の変換コストを下げるためな。桁数がいくらでもあるような値のそんな変換、それそのものが相当なコストだろ?
だから BCD ってのは 0~9 という限られた値だけを使って、10進数との変換を簡単にしてる。
1バイトで 10進数 1桁表現だ。分かるか?
ここまで分かれば、この表現での筆算式演算ルーチンはお前でも書けるな?
で、今回は 32bit 演算器があるわけだから、それを効率よく使いつつ BCD と同様の目的を果たすのが 1000000000進数表現な。
10進数の 999999999 は 0x3B9AC9FF で、32bit に納まるのは分かるな?
0x999999999 なんてバカな表現にしなければ、1バイト/桁の筆算と同じ要領で計算できることが分かるな?
頭使えよ
2022/07/04(月) 23:25:53.96ID:ttcTbGc1
>>234が10進数で書いているから入出力は10進数で確定
あとはどういう演算か桁数はいくつかに依って10^n進数演算をしたほうが有利な場合もあれば2^n進数演算をしたほうが有利な場合もある
2022/07/04(月) 23:43:32.57ID:lOMBrPIF
>>247
んまあ実際乗算を筆算でやる場合のコストはオーダー n2 だから、式が長い(計算回数が多い)なら変換コストを払って2進数にしてしまうのがいいかもね。
でも今回は小数が欲しいから、2進数で計算しちゃうとその帳尻会わせも面倒そうね。
249デフォルトの名無しさん
垢版 |
2022/07/05(火) 00:39:40.83ID:IDOVcw6H
お前らほんと面白いなw

なんでJavaのBigDecimalみたいなのを自分で実装する話で
参考になるアルゴリズムを聞いただけで荒れるんだよw

知らないなら知りませんって言えばいいじゃんか
なんでいちいち文句言うんだよww
250デフォルトの名無しさん
垢版 |
2022/07/05(火) 00:42:50.75ID:IDOVcw6H
それにしても昔の人は同じことをやってるはずなんだが
この問題、アルゴリズムとして確立されてないんか?
2022/07/05(火) 00:51:39.12ID:jgcEU6+C
>>249
荒れるもなにも、とっくに固定小数とか筆算法って出てるじゃん。
それで何が不満なのかくらい書いたらどうだい。
というか、つべこべ言ってないでまず作ってみろよ。
252デフォルトの名無しさん
垢版 |
2022/07/05(火) 01:34:42.80ID:IDOVcw6H
>>251
アルゴリズム名が知りたいね
筆算法なんてコンピュータで使われてないし
2022/07/05(火) 02:23:33.79ID:xGDM+mzu
不遜メソッド効きすぎwww
2022/07/05(火) 07:56:46.50ID:h2Xvwxj0
>>249
△知らないなら知りません
◎書けないなら書けません
>>235
2022/07/05(火) 07:57:54.68ID:EOMm60h3
>>252
使われていますよ、整数演算をきちんとしたいのならそれしかないのでは?
2022/07/05(火) 08:11:42.70ID:jgcEU6+C
>>252
名前を知ってどうするの?
そこそこプログラム書いてりゃどんな方法なのかは分かるし、使われてないなんてアホなことも言うわけもないぞ。
多ワード乗除の基本中の基本であって、他にどうやるの?ってレベル。
2進数の掛け算とか、掛ける数分ループで足しちゃう人?
257デフォルトの名無しさん
垢版 |
2022/07/05(火) 13:49:08.28ID:IDOVcw6H
>>256
アルゴリズムの名前を聞くのは
それについて調べるだけに決まってるだろw

おまえ、すでにあるアルゴリズムを
想像で再発明するんか?
アホやなぁ
2022/07/05(火) 14:18:53.50ID:fV10ArOB
>>257
つべこべ言わず手を動かせよ。
いつも口ばっかりと言われてるだろ?
2022/07/05(火) 15:13:51.38ID:Gakk+kZM
「アルゴリズム 筆算」を検索したら普通に見つかったこれ、面白かったよ。

超高速!多バイト長整数の計算手法

>>257
コードは書かねぇわ検索はしねぇわ、しょうもねーな
260デフォルトの名無しさん
垢版 |
2022/07/05(火) 15:24:20.46ID:CUrAgxNd
宿題は宿題スレでやれ
261デフォルトの名無しさん
垢版 |
2022/07/05(火) 16:09:18.14ID:IDOVcw6H
>>259
小数がね~だろ
2022/07/05(火) 16:15:09.12ID:Gakk+kZM
>>261
頭使う気が皆無というのがすげーな
2022/07/05(火) 18:44:23.54ID:oaMEO65p
>>256
>多ワード乗除の基本中の基本
その基本中の基本が自力では書けない人がほとんど、というのが、今の日本の計算機工学のお馬鹿さを如実に示していると思いますね
誰か >>235 の改良版を公開してくれませんでしょうかね、全然期待していないけど‥‥
2022/07/05(火) 21:51:37.18ID:EgFCyJS1
どうした?
散々 QZ に言いたい放題に言われ続けても実装が出せないのか?
馬鹿ばかりだな‥‥
2022/07/06(水) 03:26:05.47ID:6UOK9K5O
BigDecimal は src.zip を解凍すりゃソースが出てくるのに…
2022/07/06(水) 04:04:41.36ID:eCAmRTvB
なんか最近C++スレでも整数環上でのFFTも理解してないカスが暴れてるけど、このスレも同じノリになってきたな
なぜ?
2022/07/06(水) 04:10:59.60ID:7DPZ2tJL
整数環上でのFFTを知ってる程度の人間が
マウント取ってるからじゃないですかねぇ
268デフォルトの名無しさん
垢版 |
2022/07/06(水) 11:48:52.42ID:MXaUuSJv
馬鹿にレスを与えないで下さい
馬鹿が居憑いてしまいます
2022/07/06(水) 13:34:25.61ID:PJvDCkI9
>>267
何も理解してなくても何か言った気になれる便利構文
2022/07/06(水) 20:01:10.31ID:dC6yewxo
>>266
彼のコードを見ているけれども、一般的な乗算に展開できるほどの抽象度が足りないですね
もっと汎用的に書かないのならば単なるオナニーですよね
少なくとも >>235 くらいには汎用的に書いてほしいのですけど‥‥

>>265
どこの URL の src.zip を圧縮解除すればコードが手に入るのか ****具体的に**** 記述できますか?
2022/07/06(水) 22:26:45.95ID:6UOK9K5O
>>270
ファイル名は間違ってるかもしれないが、SDKのインストール先直下のディレクトリにzip(もしくはjar)としてライブラリのソースは入ってるのよ
2022/07/06(水) 22:32:35.76ID:6UOK9K5O
>>270
またEclipseとかIDEではソース中で使われてるBigIntegerとかから実装にジャンプするとzip中の対象ファイルがエディタで開かれる
2022/07/06(水) 22:39:05.29ID:6UOK9K5O
>>270
これは古いバージョンだけど
https://github.com/openjdk-mirror/jdk7u-jdk/blob/master/src/share/classes/java/math/BigDecimal.java
とか、GitHub にも置かれてる
2022/07/07(木) 02:33:54.03ID:/of+H6+2
こいつ有名な荒らしだから相手しない方が良いよ
不毛なことしか書けない人
2022/07/10(日) 15:25:18.55ID:QCQOT/0O
>>271
ちゃんとした情報を出してくださいね
そんないいかげんな情報では動く気にもなれないの、馬鹿
2022/07/10(日) 15:25:51.45ID:QCQOT/0O
>>272
エクリプスなんて使いたくないの、xyzzy でやる方法を教えてね
2022/07/10(日) 15:26:07.43ID:QCQOT/0O
>>273
新しいバージョンをお願いね
2022/07/10(日) 15:26:50.57ID:4uphdAWi
>>274
有名でもないし嵐でもないわ
2022/07/11(月) 17:40:53.28ID:RJHpoZJ0
>>277
コア技術でもないのに最新版を要求するクズっぷりに草
2022/07/12(火) 02:18:29.11ID:Ddw+6qP5
Javaで「文字列がヌルも含めた空文字である」を評価するとき、例えば
if (str == null || str.isEmpty()) としますよね? でこれは短絡評価によりstrがnullのときは
str.isEmpty()は評価されないのでNPEは発生しないと。
ここから質問ですが、これの否定式を作る場合に、単純にドモルガンを適用して
if (str != null && !str.isEmpty()) でいいですよね?

一般的に元の式が短絡評価込みで問題ない場合、単にそれの否定をとったりしても
問題は生じない、ですよね? というか単純に否定の式を書くべきですよね?(どこかで順序
を変えてはいけない) というか
if (!(str == null || str.isEmpty())) が無難かもしれないですが、場合によってはバラして
簡略化したいですよね? そのとき項の順序さえ変えなければあとは論理法則を適用して
変形していいですよね? というか
2022/07/12(火) 02:24:55.92ID:Ddw+6qP5
あと、論理的には問題ないように順序を交換してその項が消える場合は
順序を変えてもいいんですかね? とか
2022/07/12(火) 09:15:17.45ID:r0oulnz0
動作上の問題はない
最適化ガーとか言い出すド阿呆は居るかもしれない

んだが、普通はnullだと異常ルートでreturnさせたりするから、空の判定を書くことが多いんじゃないかなという経験的感想
2022/07/12(火) 09:19:02.27ID:r0oulnz0
>>282
正常ルートをブロック化すると無駄なネストが増えちゃうから
俺ならそんなコード書かれてたらレビューで指摘する
2022/07/12(火) 09:22:53.29ID:ZUXbswHw
>>283
ブロック化というか、
if (str == null) return;
的なものを最初の方に置いておくってことじゃね。
2022/07/12(火) 09:23:28.92ID:ZUXbswHw
なんだ自己レスかよw
2022/07/12(火) 09:33:25.75ID:46BVSOic
kotlinにしてisNullOrEmptyにしないからそうなる
2022/07/12(火) 10:05:16.64ID:8furZaV3
twitter apiの質問ってここでいいですか?
2022/07/12(火) 11:10:56.86ID:oE4SglJp
最近の言語はnullを廃止して安全にした言語が増えてきたね
Rustなどのようにnullを無くして静的な型チェックでnull関係のミスをコンパイル時点で完全に防ぐ言語がオススメかな
2022/07/12(火) 12:27:47.36ID:cntCnL4D
変数を何千、何万という規模で使うようなプログラム作ってる人は
その何千以上の変数名を全部自分で考えて付けてるんですか?基本的に命名規則に従って
なにかしらの手抜き方法とかあるんですか?
290デフォルトの名無しさん
垢版 |
2022/07/12(火) 12:30:38.14ID:F2coDuKO
>>289
全部グローバル変数なら命名も大変だろうが、小さいスコープ内なら大変じゃないよ
2022/07/12(火) 12:49:34.65ID:lZD1gQnq
>>289
まともなプログラム&言語ではグローバル変数を滅多に使わない
関数やクラスなどの中に閉じた変数を使うからその中で名前を区別できれば十分
その関数もグローバル関数はレアな存在でクラスなどのメソッド関数などにするのでそのクラスなどの中で名前を区別できれば十分
そのクラスなどもモジュールなどの中で名前を区別できれば十分
そのモジュールなどの名前は仮にぶつかっても使用を宣言する時に別名として採用できる言語が多いから名前がぶつかっても困ることはない
細かいところは各プログラミング言語によって色々と異なるけど概要としては以上の通り
2022/07/12(火) 13:54:30.96ID:bC3C9A55
グローバルおじさんが作ったVBSとか楽しすぎて辞めたくなるよな
2022/07/12(火) 14:13:34.28ID:0sH3rFaE
速度を優先するとグローバル変数も使いたくなりませんか
連続で呼ばれる関数で毎回変数宣言するよりもグローバル変数で一度定義しておけば
その負担をゼロにできるし
2022/07/12(火) 14:30:47.58ID:46BVSOic
そうですね。他にもmain関数一本で実装するのがモダンなやり方だと思いますよ
2022/07/12(火) 14:44:45.71ID:h7t7toC6
>>293
>速度を優先するとグローバル変数も使いたくなりませんか
既に定義済みの変数を利用したいケースは当然あるが
だからといってグローバル変数は使わない

>連続で呼ばれる関数で毎回変数宣言するよりもグローバル変数で一度定義しておけば
>その負担をゼロにできるし
それぞれサンプルコード書いてみたら?
もう少し具体的なアドバイスがもらえると思うよ
2022/07/12(火) 14:52:24.07ID:/TLAe8PW
>>293
宣言に伴う領域確保時に自動的に内容が初期化されるような処理系だったりポリシーだったりするとそうかもね。
C だと関数呼び出し時にその関数で使用する変数に充分なサイズのスタックフレームを確保するだけだから、コストなんてかからないよ。
スタックポインタを最初に一度ずらすだけだからね。
2022/07/12(火) 15:09:08.48ID:e6ywpCu7
>>293
グローバル変数は、いつ、どこから、誰が、どのように、アクセスするか不明であり、
一般的にはデータ競合を起こす可能性もあるため、その場合は対策として排他制御が必要となるなど、むしろ遅くなる可能性を招きかねない
グローバル変数はできる限り使わないのが通常のプログラミングの基本である
2022/07/12(火) 15:10:10.48ID:/ElrVE0y
>>289
命名の省力化よりも設計の質や可読性を高めることに意識を集中させたほうがいいぞ
その意識で1~2年もやれば手抜きというか命名コストを下げる方法も自然と身につく
2022/07/12(火) 15:17:54.87ID:ZWwvT0dn
速度は別としても、どうしても共有したデータを参照したい時は
グローバル変数も使わざるをえないのでは
2022/07/12(火) 15:31:37.13ID:6JujiSX5
js幼女だけどfsoやwshをグローバルにしている
2022/07/12(火) 15:33:54.63ID:46BVSOic
ローカルDBやファイルや設定ファイルなどはグローバル変数だから使うべきでない
2022/07/12(火) 15:39:37.31ID:0s4l2w4w
>>299
まずデータ共有のためにグローバル変数を用いるのは他に手段がない場合に限定されしかも以下の点に注意する必要か出て来ます
データを多者で共有するということは
その多者の関係によってはデータ競合が発生するため一般的には排他制御を行うことになります
2022/07/12(火) 15:55:20.39ID:Lr6lZRed
>>301
設定ファイル名は固定ならば変数ではなく定数であるからグローバル変数ではない
変わりうる時は引数や環境変数や設定ファイル等が出自となりこれもグローバル変数てはない
ファイルはファイル等のモジュールのオープン関数にファイル名やパスを指定して扱うからグローバル変数の要素はない
ローカルDBも同様でありグローバル変数を必要としない
まともなコードならばグローバル変数は出て来ない
2022/07/12(火) 16:11:36.31ID:XIWH5a4r
>>299
どの言語を前提に話してるの?
2022/07/12(火) 16:17:16.03ID:cntCnL4D
C#やJavaなんかで
2022/07/12(火) 16:40:13.27ID:3+lEMrqc
>>305
その2つともグローバル変数がそもそも機能的にないやろ
static classのstatic変数使う

C#ならnamespaceを切って、使う側で明示的にインポート
2022/07/12(火) 17:07:57.77ID:MOqUyrHS
>>289
変数や関数は台帳で管理する
F00001、F00002みたいな名前にしておけば悩む必要はない
なおF00100以下の番号は、前々社長など
会社の偉い人に割り当てられている
その関数は伝説となっており誰も手を付けてはいけないことになっている
2022/07/12(火) 17:28:55.51ID:46BVSOic
アセンブラとか変数どころかアドレスの番地やろ
2022/07/12(火) 18:28:32.11ID:6GTnP78T
レジスタ名は変数に含まれますか?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況