[過去ログ]
スレ立てるまでもない質問はここで 163匹目 (1002レス)
スレ立てるまでもない質問はここで 163匹目 http://mevius.5ch.net/test/read.cgi/tech/1670470167/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
709: デフォルトの名無しさん (ワッチョイ fd10-R6F1) [sage] 2023/02/23(木) 20:55:16.67 ID:4nvSVdtR0 >>697 >>699 誤差の出ない計算って論理的には可能だよ。 掛け算だったら、計算するごと使用するメモリを増やす型と関数を自作すれば良い。 例えば、10進数の計算で1桁に1バイト使う型を定義する。 1.1は整数1バイトで少数1バイトだが、 1.3を掛けると 1.43で整数1バイト、少数2バイトになる関数を作ると桁が落ちなくなる。 割り算の場合は、分母と分子を別々の値を持った型を作れば良い。 http://mevius.5ch.net/test/read.cgi/tech/1670470167/709
710: 709 (ワッチョイ fd10-R6F1) [sage] 2023/02/23(木) 21:30:41.07 ID:4nvSVdtR0 試しに誤差の出ない計算のプログラム作ってみようと思ったら、 visual studio2008が古すぎるせいか動かなかったから、 visual studio2022をダウンロード中 http://mevius.5ch.net/test/read.cgi/tech/1670470167/710
711: デフォルトの名無しさん (ワッチョイ fd10-j6dJ) [sage] 2023/02/23(木) 21:42:53.24 ID:6eqWydaM0 平方根とか三角関数とか計算途中の足し算とかあるじゃろ http://mevius.5ch.net/test/read.cgi/tech/1670470167/711
712: デフォルトの名無しさん (ワッチョイ 6d68-/+FQ) [sage] 2023/02/23(木) 21:45:40.03 ID:1cQlLW/80 雑 http://mevius.5ch.net/test/read.cgi/tech/1670470167/712
713: デフォルトの名無しさん (ワッチョイ a38e-O7MM) [] 2023/02/23(木) 22:07:01.61 ID:hO/bqHQv0 >>709 馬鹿の典型例 http://mevius.5ch.net/test/read.cgi/tech/1670470167/713
714: デフォルトの名無しさん (ワッチョイ 5507-ebfy) [sage] 2023/02/23(木) 22:51:44.98 ID:BgVzVA3A0 >>709 無理数って知ってる? http://mevius.5ch.net/test/read.cgi/tech/1670470167/714
715: デフォルトの名無しさん (ワッチョイ e310-mLMb) [sage] 2023/02/23(木) 22:59:13.32 ID:gnLhIz6D0 分野が違うけど近似計算追求するよりか H.264のように整数演算でいかに構築するかって方が好き http://mevius.5ch.net/test/read.cgi/tech/1670470167/715
716: デフォルトの名無しさん (ワッチョイ 6d68-/+FQ) [sage] 2023/02/23(木) 23:34:23.20 ID:1cQlLW/80 欲しいのはたぶん多倍長固定小数点だろ 誤差を十分吸収し得るに足る小数点の位置は 個別のケースによって違うから自分でやるしかないよ http://mevius.5ch.net/test/read.cgi/tech/1670470167/716
717: 709 (ワッチョイ fd10-R6F1) [sage] 2023/02/24(金) 00:14:25.26 ID:6Vzv7gfq0 >>713 どこが間違ってるか指摘出来ないお前の方が馬鹿だろ >>711,714 >>697がどんな計算が必要か分からないが、 数値計算の誤差は掛け算や足し算で積み重なる場合が多い。 平方根をどうしても誤差無く計算したいなら、 計算出来なかった平方根の情報を残したまま出力するプログラムにすれば良い。 三角関数は、オイラーの定理の形式にすれば実装できる。 http://mevius.5ch.net/test/read.cgi/tech/1670470167/717
718: 709 (ワッチョイ fd10-R6F1) [sage] 2023/02/24(金) 00:42:32.82 ID:6Vzv7gfq0 >>717はオイラーの定理の形式にすれば実装できる場合もあるってことね。 無理な例を上げていちゃもんを付けてくる人がいるから、あらかじめ言っておいた。 誤差の無い掛け算足し算のプログラムを作ろうとしたら、思ったより大変で終わらなかった。 明日仕事から帰って気力があったら続きをやるか。 http://mevius.5ch.net/test/read.cgi/tech/1670470167/718
719: デフォルトの名無しさん (ワッチョイ cbbb-N4lW) [sage] 2023/02/24(金) 00:50:21.53 ID:wglsxPd20 BigDecimalみたいな配列ベースで実装された数値を使って有理数だけの演算をするならいけるだろうけど質問者が聞いてるのはそんな極めて限定された環境下の話じゃないだろうな 無理数の計算を計算できなかった情報として積み上げるなんて発想もそれをカオス系で使おうなんてNP困難みたいな実質不可能になる予感しかしない http://mevius.5ch.net/test/read.cgi/tech/1670470167/719
720: デフォルトの名無しさん (ワッチョイ fd10-j6dJ) [sage] 2023/02/24(金) 00:51:40.40 ID:Q77HdEB50 誤差無しの厳密な計算結果を求めたかったんだろうに情報残したまま出力してどうするんだ http://mevius.5ch.net/test/read.cgi/tech/1670470167/720
721: デフォルトの名無しさん (ワッチョイ c569-/+FQ) [sage] 2023/02/24(金) 02:26:19.79 ID:8t4u29Gl0 任意多倍長使えば加減乗で誤差出ないの当たり前だろwとっくにライブラリある、自作すんなしw 有理数型なら除でも誤差出ないけど、それはつまり計算出来なかった情報を残してるってことなんだよね >計算出来なかった平方根の情報を残したまま出力するプログラム mathematicaでシミュるとか凄い遅そう http://mevius.5ch.net/test/read.cgi/tech/1670470167/721
722: デフォルトの名無しさん (ワンミングク MM71-IvAx) [sage] 2023/02/24(金) 05:39:10.18 ID:ta4Sp3FjM >>718 数学もまともにわからない算数レベルの馬鹿 http://mevius.5ch.net/test/read.cgi/tech/1670470167/722
723: デフォルトの名無しさん (ワッチョイ 5507-ebfy) [sage] 2023/02/24(金) 08:12:21.27 ID:OehCc09P0 >>717 あのなw それでマジで誤差のない演算や大小の比較ができると思ってんの?w http://mevius.5ch.net/test/read.cgi/tech/1670470167/723
724: デフォルトの名無しさん (オイコラミネオ MM91-4mn0) [sage] 2023/02/24(金) 11:22:48.28 ID:62b5PWzyM お話中、失礼します。 RDBMS ほどではないにしろ簡単なデータベースを普通のファイルを使って自作する 場合、もし、ディスクに flush されるまえに OS がダウンしてしまった場合に備える アルゴリズムはどんなものが考えられるでしょうか? ファイルは、上書きしなければ、ストレージが壊れるまではそのまま壊れないと仮定してよいと 思うのですが、問題は追加したり、途中を部分的に変更するために、同じファイルに書き込む 時だと思うんです。 http://mevius.5ch.net/test/read.cgi/tech/1670470167/724
725: デフォルトの名無しさん (ワッチョイ b5da-BTrK) [sage] 2023/02/24(金) 11:27:38.65 ID:/JDec9CR0 >>724 SQLite3を使え。データベースファイルが単一のファイルだから 普通のRDMBSほどではない簡単なデータベースに使える。 その程度のアルゴリズムも思いつかないようなレベルじゃ 実装なんて到底無理だ。 http://mevius.5ch.net/test/read.cgi/tech/1670470167/725
726: デフォルトの名無しさん (オイコラミネオ MM91-4mn0) [sage] 2023/02/24(金) 11:28:28.20 ID:62b5PWzyM >>724 [案1] ・mkdir "X" 法で排他制御を開始する。他のcgiのインスタンスが処理中は待機する。 ・今までのデータファイルAには上書きせずに、ファイルAをメモリーに全部 読み込んでから、一部だけを修正し、新しいファイルBを作成して全部 書き出してしてしまう。 ・ファイルBをfflushして、OSのsystem call で(?) sync して、ストレージに本当に 書き込まれるまで待つ。 ・それが終わったら、ファイルAを削除してからBのファイル名をAに変えてしまう。 ・rmdir "X" として、排他制御を終える。 http://mevius.5ch.net/test/read.cgi/tech/1670470167/726
727: デフォルトの名無しさん (ワッチョイ b5da-BTrK) [sage] 2023/02/24(金) 11:30:29.54 ID:/JDec9CR0 > ・それが終わったら、ファイルAを削除してからBのファイル名をAに変えてしまう。 はい、ここでアウト ファイルAを削除した段階でOSがダウンするとデータが無くなる また、複数のファイルに書き込む場合が考慮されていない な? http://mevius.5ch.net/test/read.cgi/tech/1670470167/727
728: デフォルトの名無しさん (オイコラミネオ MM91-4mn0) [sage] 2023/02/24(金) 11:31:14.08 ID:62b5PWzyM >>725 >その程度のアルゴリズムも思いつかないようなレベルじゃ >実装なんて到底無理だ。 726 のようなアルゴリズムはどうですか。 効率は悪いと思いますし、一時的にディスク領域が2倍必要になりますが。 http://mevius.5ch.net/test/read.cgi/tech/1670470167/728
729: デフォルトの名無しさん (ワッチョイ b5da-BTrK) [sage] 2023/02/24(金) 11:32:54.79 ID:/JDec9CR0 信頼性重視なデータベースソフトが どれもジャーナルという仕組み(アルゴリズムではない)を 採用している理由を考えろ その程度の適当な方法じゃ実装できねぇんだよ http://mevius.5ch.net/test/read.cgi/tech/1670470167/729
730: デフォルトの名無しさん (オイコラミネオ MM91-4mn0) [sage] 2023/02/24(金) 11:33:17.21 ID:62b5PWzyM >>727 >ファイルAを削除した段階でOSがダウンするとデータが無くなる 次にcgiを起動した時に、ファイルAが無くなっていて、ファイルBだけが 存在する時には、Bのファイル名をAに改名するところから再開すれば 良いのでは有りませんか。 http://mevius.5ch.net/test/read.cgi/tech/1670470167/730
731: デフォルトの名無しさん (ワッチョイ b5da-BTrK) [sage] 2023/02/24(金) 11:37:53.55 ID:/JDec9CR0 いくつもある穴の一つを指摘しただけだ 複数のファイルに書き込むときはどうする? http://mevius.5ch.net/test/read.cgi/tech/1670470167/731
732: デフォルトの名無しさん (ワッチョイ b5da-BTrK) [sage] 2023/02/24(金) 11:39:24.82 ID:/JDec9CR0 だいたいCGIっていうのが終わってる ファイルサイズが100GBあったら ロック時間は100GBのファイルコピーの時間分になる 多数のアクセスでスケールしない http://mevius.5ch.net/test/read.cgi/tech/1670470167/732
733: デフォルトの名無しさん (オイコラミネオ MM91-4mn0) [sage] 2023/02/24(金) 11:44:39.76 ID:62b5PWzyM >>732 ファイルのサイズは1MB程度までと考えています。 >>731 複数ファイルの場合、mkdir "X" で排他性世を行なっている間に、 同じことを繰り返せばいいと思います。 http://mevius.5ch.net/test/read.cgi/tech/1670470167/733
734: デフォルトの名無しさん (ワッチョイ e310-mLMb) [sage] 2023/02/24(金) 11:44:56.50 ID:2YdGe9kz0 そんなやり方推奨せんけど rename(2)の上書きはアトミックにできるから先に消すのは悪手 http://mevius.5ch.net/test/read.cgi/tech/1670470167/734
735: デフォルトの名無しさん (オイコラミネオ MM91-4mn0) [sage] 2023/02/24(金) 11:45:39.89 ID:62b5PWzyM >>731 >いくつもある穴の一つを指摘しただけだ 単一ファイルの場合で、サイズが十分小さい場合には、他に穴はないのでは ないでしょうか。 http://mevius.5ch.net/test/read.cgi/tech/1670470167/735
736: デフォルトの名無しさん (オイコラミネオ MM91-4mn0) [sage] 2023/02/24(金) 11:47:55.10 ID:62b5PWzyM >>734 renameに関しては、どういう意味か分かりませんが、もし、Aを先に削除したく ないのであれば、 ・AをCに改名後、BをAに改名。 ・sync(?)などで、ストレージに本当に書き込まれるまで待機。 ・Cを削除。 で良いのではないでしょうか。 ただ、余り意味は無いと思われます。 http://mevius.5ch.net/test/read.cgi/tech/1670470167/736
737: デフォルトの名無しさん (ワッチョイ a301-YJ5W) [sage] 2023/02/24(金) 13:37:04.58 ID:igKefKVx0 >>726 解決策を考える前に要件を固めたほうがいいよ 急にcgiや排他制御が出てくるけど 同時実行を含めてどういう粒度でどういう操作をサポートする必要があるのかによって 更新方法も排他制御の方法も考え方が変わってくる flush前のOSダウンに備えるだけなら更新内容が復元できるだけの情報を ジャーナルとして書き出しflush完了を確認してからファイルを更新すればいい 比較的新しめのファイルシステムはそういう機能を持ってる http://mevius.5ch.net/test/read.cgi/tech/1670470167/737
738: デフォルトの名無しさん (アウアウウー Sa49-ebfy) [sage] 2023/02/24(金) 14:13:55.96 ID:p/kCAwBGa なんでお前ら車輪を発明しようとしてんの? あるぞそれ http://mevius.5ch.net/test/read.cgi/tech/1670470167/738
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 264 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.013s