[過去ログ]
スレ立てるまでもない質問はここで 163匹目 (1002レス)
スレ立てるまでもない質問はここで 163匹目 http://mevius.5ch.net/test/read.cgi/tech/1670470167/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
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 がダウンしてしまった場合に備える アルゴリズムはどんなものが考えられるでしょうか? ファイルは、上書きしなければ、ストレージが壊れるまではそのまま壊れないと仮定してよいと 思うのですが、問題は追加したり、途中を部分的に変更するために、同じファイルに書き込む 時だと思うんです。 h
ttp://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://me
vius.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
739: デフォルトの名無しさん (オイコラミネオ MM91-4mn0) [sage] 2023/02/24(金) 14:16:27.90 ID:OSyVRWv/M >>737 >flush前のOSダウンに備えるだけなら更新内容が復元できるだけの情報を >ジャーナルとして書き出しflush完了を確認してからファイルを更新すればいい 「更新内容が復元できるだけの情報」 として、今までのデータファイルAをまるまるcopyしておいてとっておく方法が考えられます。 copyは効率が悪いので、効率を良くしたのがそれが今回提示しました rename 方です。 ファイルAが大きくなった場合サイズが大きくなる難点がありま
すが、 サイズが小さいならば最も単純な方法ではないかと考えております。 逆に、ファイルAが大きい場合、「復元できるだけの情報」を小さくする、ということに過ぎ ないと思われます。 その場合、ファイルAの「部分書き換え」が安全に行なえて、書き換えなかった部分は、 今までのデータがそのまま絶対に安全に残っていることが保証できないといけないと 思われます。 その場合、ファイル単位ではなく「クラスタ単位のアクセス」が必要になるかも知れませんが、 いかが思われますか? http://mevius.5ch.net/test/read.cgi/tech/1670470167/739
740: デフォルトの名無しさん (オイコラミネオ MM91-4mn0) [sage] 2023/02/24(金) 14:51:56.78 ID:iKSzXQzLM それから、mkdir "X" 法で排他制御する場合、rmdir "X" で排他制御を終えるまでに 電源断が起きたとき、次に cgi が起動した場合にどう対処するか問題がありますね。 例えば、10分後に別インスタンスの cgi が起動した時にフォルダ "X" が残っていた 場合、恐らく直前の cgi の実行中にトラブルが発生した可能性が高くなります。 その場合、cgiのプロセスを見つけ出して存在していれば kill してから、 仕切り直すこ
とで対処できるかも知れませんが。 http://mevius.5ch.net/test/read.cgi/tech/1670470167/740
741: デフォルトの名無しさん (オイコラミネオ MM91-4mn0) [sage] 2023/02/24(金) 15:24:56.35 ID:iKSzXQzLM >>738 MySQLもPostgreSQLも仕組みがよく分からないので、電源断が起きたとき どこのどういうファイルがどのような状態になっているかが分からないんです。 それと、テーブル1つに対して3つのファイルが作られると聞きました。 レンタルサーバーでは容量が100GBでも、ファイルの個数が1000個などの上限 が有る場合が多いですし、そもそも、MySQLなどのテーブル数に上限があったり して難しいんです。 >>737 安いレンタルサーバーでは
、Ruby On Railsのような常駐サーバーは使えないので、 cgiしか選択肢が無いと思います。 http://mevius.5ch.net/test/read.cgi/tech/1670470167/741
742: デフォルトの名無しさん (ワッチョイ a301-YJ5W) [sage] 2023/02/24(金) 15:29:30.22 ID:igKefKVx0 >>739 要件を固める前に思いつきであれこれ実装方法を考えても時間の無駄だよ それと排他制御という言葉で思考停止してるから どういう制御が必要なのかもう少し考えたほうがいいよ RDBを知ってるならmkdirでの排他制御だけじゃ穴だらけなわかるよね http://mevius.5ch.net/test/read.cgi/tech/1670470167/742
743: デフォルトの名無しさん (スップ Sd03-O7MM) [] 2023/02/24(金) 16:08:08.86 ID:CdQVBJsid >>741 vpsにすれば? http://mevius.5ch.net/test/read.cgi/tech/1670470167/743
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 259 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.024s