tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^12: 組み合わせ合計検索 つづき
投稿日: 2023/08/31(Thu) 15:58
投稿者たけし
お世話になります。


> > これを10個以下で詳細値を求めたいと思っています。
> No.12102 の実装において、FindCombination 時の再起処理のところで、
> Node の階層数が 10 を超過したら探索を打ち切るようにすれば良いでしょう。
>
> 探索結果は Node で保持しているので、アイテム数も Node に管理させた方が手っ取り早いです。
> たとえば Node クラスに
>     Public ReadOnly Property Depth As Integer
>         Get
>             Return If(Parent Is Nothing, 0, Parent.Depth + 1)
>         End Get
>     End Property
> を追加しておいて、
>  If nextNode.Total <= targetValue Then
> の部分を
>  If nextNode.Total <= targetValue AndAlso nextNode.Depth <= 10 Then
> に変更するとか。
>

詳細値:を 多くした場合 198個

182    188    203    33    92    109    131    36    51    55    65    82    86    106    115    129    133    134    139    148    159    165    184    63    29    54    24    68    29    29    54    68    29    68    29    36    45    51    55    65    76    82    89    106    115    116    119    129    133    134    139    142    148    159    165    184    185    186    77    140    217    43    45    64    77    140    155    166    77    140    217    92    75    70    56    50    106    129    163    222    36    51    55    65    69    106    109    113    115    116    119    128    129    133    137    151    159    163    165    182    184    203    205    213    216    219    33    36    40    50    51    55    65    86    89    92    106    109    115    116    119    129    131    133    139    159    163    165    176    184    186    213    216    219    113    186    33    36    55    65    75    92    94    106    115    116    119    129    133    142    159    165    184    186    36    51    55    65    103    106    115    116    119    129    133    159    163    165    184    186    36    50    51    55    65    74    89    106    109    113    115    116    118    119    128    129    133    139    159    163    165    184    186    219    222    256    106    139

以下のエラーでます。

OutOfMemoryException はハンドルされませんでした。
種類 'System.OutOfMemoryExceptin' の例外がスローされました。
件数が悪さしているのでしょうか?

件数がある程度少ないときは成功します。



> よりアイテム数の少ない組み合わせを優先したい場合は、既に提供済みの
> すべての組み合わせを返すバージョンを使うなどしてみてください。

これから試してみようと思っています。


> > 以下のように変更した場合
> > msgbox の値は以下のようになります。
> 修正したコードにある、第 3 引数「ByVal kyoyouti As Integer」が謎です。
> ここに値を渡している箇所も無ければ、引数値を読み取っている箇所すら見当たりません。
>
> 仮変数の名前から "許容値" の意味であることは想像ができますが、
> 実引数を見ても第 3 引数が指定されていないですよ?
> > 探索(1230, 値一覧3)

For 設定値 = 設定値 To 設定値 - 20 Step -1

20の部分を kyoyouti で変更できるようにしていたのですが
書き込む際に消し忘れてしまいました。
        

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。