スレ立てるまでもない質問はここで 164匹目at TECH
スレ立てるまでもない質問はここで 164匹目 - 暇つぶし2ch31:デフォルトの名無しさん (ワッチョイ ffbb-NbbG)
23/08/10 00:51:13.63 oULtvnGM0.net
散々突っ込みがあるけどこのケースはビンパッキング問題なのでナップサック問題の解法を持ち出しても意味がない
それはそれとしてナップサック問題においてテーブルが巨大になりすぎるケースへの対策はいくつがあるのでググれ

32:デフォルトの名無しさん (ワッチョイ 219a-reiW)
23/08/10 12:40:48.21 7PHy5Ern0.net
だから、元の問題から、ナップサック問題への疑問が浮かんだと書いてるでしょ
元の問題はきっかけに過ぎないというか。皆さん頭がやたらお固いのか
>>31
>それはそれとしてナップサック問題においてテーブルが巨大になりすぎるケースへ
>の対策はいくつがあるのでググれ
まさに自分の疑問は最初からその一点に尽きる。あまりその点を議論している話は
見たことがなかったので。ググレ、ですか。もうそんなの常識って感じ?

33:デフォルトの名無しさん (ワッチョイ ffbb-NbbG)
23/08/10 13:01:09.78 oULtvnGM0.net
間違いを誤魔化し逆ギレ気味になってる奴と見られてるよ
味方が一人も現れてないってことはそういうこと
まあ自分を客観的に見るって難しいけど程々にな

34:デフォルトの名無しさん (オッペケ Sr9f-7Ell)
23/08/10 13:04:14.89 IDRc3L5Ir.net
>>32
>元の問題はきっかけに過ぎないというか。
要するにバックアップの問題を解きたいわけじゃなくてナップサック問題と動的計画法を探求したいということ?
ならまずバックアップを題材にするのはやめて他の適切なお題を探そう

35:デフォルトの名無しさん (ワッチョイ d311-hjB7)
23/08/24 05:34:38.95 c4nPOyKs0.net
minicondaで環境構築中
accelerateのバージョンが低いエラーが出たからpipでアップデート掛けたんだけど同じエラーが発生
指摘されたバージョンをアンインストールしても同じエラーが発生
何が原因か考えられますか?

36:デフォルトの名無しさん (ワッチョイ 395f-tQHf)
23/08/24 10:28:49.26 avitWHZb0.net
どうなるかわからないのに作法を逸脱したから
なんとかcondaは新規環境の簡易構築用と割り切るべきで
通常利用している端末では使わないほうがいい

37:デフォルトの名無しさん
23/09/08 15:41:33.46 4MDXzZ0s0.net
ubuntuのイメージが入っているdockerイメージをダウンロードし、それにOperaをインストールしました
実行しようとしたのですが・・・
[9:9:0908/153938.953587:ERROR:zygote_host_impl_linux.cc(100)] Running as root without --no-sandbox is not supported. See URLリンク(crbug.com)
っというエラーが。何が悪いんでしょうか?

38:デフォルトの名無しさん
23/09/08 15:53:00.33 4MDXzZ0s0.net
あ、すいません
一旦取り下げます

39:デフォルトの名無しさん
23/09/12 10:30:55.16 OgaNelN6d.net
一旦?

40:デフォルトの名無しさん
23/11/21 11:35:35.06 flL/yqDs0.net
知るか

41:デフォルトの名無しさん (ワッチョイ 338a-pDLy)
23/12/28 04:24:08.06 NBXduxv20.net
フラグ管理の効率的な方法を教えて下さい。
作成中の社内向け事


42:務アプリなんですが、判定要素が多くなりすぎて毎回読む度に悩みます。 ユーザーに割り当てられた権限や日時による分岐がめっちゃ多いです。 例えば、シンプルなやつだと下記みたいな感じです。 ※権限には、種類とランクがあります。 ・権限Aを持っているユーザーB~Eが、日時F~Gの間に許可した時だけ、  ユーザーH・Iが日時J~Kの間だけ権限L・Mを付与されて、  その権限を行使して処理NまたはOを合計2回行った時に、その権限を付与したユーザー(B~E)の権限PをQ~Rの期間降格する。



43:デフォルトの名無しさん (ワッチョイ ffc0-YJuU)
23/12/28 09:11:59.14 i2ZdA1S00.net
>>41
・フラグにfindFlagみたいな不適切な名前をつけない
grantedのような過去分詞にする
・真偽値の変数をなるべく減らす
関数のロジックで表現して意味が通る単位で適度に分割する
・権限に関する判定を他のロジックから独立させる
たとえば権限判定クラスを作って、コンストラクタでユーザを与える
他のロジックからは、権限があるか?というメソッドだけを呼ぶ
権限の判定処理に興味があるときはその内側のソースのみを追えば良く、その逆も然りとする

44:デフォルトの名無しさん (ワッチョイ 3393-ZEMC)
23/12/28 10:45:50.72 01mDGJoH0.net
>41
案1:フラグはデータベースで管理する。フラグが変更される度にデータベース内ユーザーフィールドのフラグカラムをupdateで更新する。

案2:フラグ変更のプログラムをサブルーチン化(ユーザー定義関数)させる。Aの挙動の時はhogeフラグ、Bの挙動の時はpiyoフラグ、というようにA/B/C…どんな挙動が行われても対応するフラグを与えられるようにサブルーチンでさせる。

どちらの案にも共通しているのは、「管理を1つにまとめる」「ページをまたいでもフラグを簡潔に保持できるようにする」という点。

45:デフォルトの名無しさん (ワッチョイ 3393-ZEMC)
23/12/28 10:49:35.55 01mDGJoH0.net
>41
この手の内容は運用していくたびに今後もフラグの追加や削除が行われていきそうだから、メンテナンスしやすい可読性の高い先を見据えたプログラム書いてあげるのも重要だねー

46:デフォルトの名無しさん (ワッチョイ 5363-y73S)
23/12/28 11:06:36.33 rMC+jsft0.net
業務系のバッチ処理だと割とありそうなパターンだが
先行する複数のジョブが終了して、後続のジョブを起動するとか
そういう時系列的順序性があるのかな?

47:デフォルトの名無しさん
23/12/28 12:27:48.58 h0GDpcws0.net
>>41
一番いいのはきちんとモデリングしてフラグを無くすこと
データベース管理にするかコード上で管理するかは状況次第だけど
複雑になればなるほどデータベース管理のほうが柔軟性も保守性も高くなることが多い
例えば↓こういうテーブル群を用意して
1. ユーザーごとの基本権限
2. 処理ごとの認可ルール
3. 実行回数など動的認可ルールのための記録
4. 実行回数等による降格ルール
5. 降格ルール等により基本権限を上書きするユーザーごとの一時的権限
処理Nが呼び出されるときに呼び出す権限チェック処理では
認可ルール・基本権限・一時的権限を確認することで処理Nを実行可能かどうか判断して
実行可能であれば実行回数等の記録と降格ルールなどの確認と適用を行うイメージ

48:デフォルトの名無しさん
23/12/28 12:28:12.86 i2ZdA1S00.net
フラグはグローバル変数、staticに次いで初心者やレガシープログラマーが乱用しがちな三種の神器だと思う
専門用語らしさがあるし使いたくなるんだろうな
StrategyパターンやStateパターン、関数型プログラミングの考え方をざっと覚えるだけでもだいぶ変わると思う

49:デフォルトの名無しさん
23/12/28 21:14:58.94 3Z7OGsfy0.net
>>41
話を単純化すると、大雑把にユーザー、権限、処理の3種類のカテゴリとする
ユーザーとは
・所有している権限で許可された処理を行える
権限とは
・権限には種類とランクがある
・権限により実行できる処理が決められている
処理とは
・処理はいくつも作成できる
・処理の種類はユーザーへの権限付与や剥奪、処理の許可、その他がある
・処理を実行する時、指定回数や期間等を設定でき、特定条件に合致した時に別の処理を呼び出せる
これを踏まえた各カテゴリの性質
ユーザー: 権限(単数、複数)と権限の範囲で可能なユーザーが作成した固有の処理 →可変
権限: 種類とランクで可能な処理一覧 →不変
処理: 想定する権限、処理内容、条件等の設定できる情報 →不変
以下の処理を作成し、整合性をチェックする
処理1 日時F~Gの間、処理2を許可し、処理1を実行したユーザーを記憶する (権限Aを持つユーザーB~Eに紐付け)
処理2 日時J~Kの間、ユーザーH・Iに権限L・Mを付与する
処理NまたはO 処理実行し処理NまたはOの実行回数が合計2回に達した時、処理3を実行 (権限L・Mを持つユーザーH・Iが実行)
処理3 処理1で記憶したユーザーの権限PをQ~Rの期間降格する (処理NまたはOからの条件付き実行)

50:デフォルトの名無しさん
23/12/28 22:20:52.97 3Z7OGsfy0.net
何が言いたいか補足すると、必要なフラグというかデータは
1 処理を実行する時のユーザーの所有する権限
2 処理1と処理3を紐付けるユーザーの記録情報、または処理の実行履歴
3 各処理の個別の内容詳細
の3種に絞れると思う
処理は権限に従って実行できるかが決まるようにするとか、上手く設計すれば状態管理は必要なくなるという事が言いたかった

51:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch