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

タイトル Re: ジャグ配列でRedim Preserve みたいな使い方をしたいのです
投稿日: 2017/08/31(Thu) 16:16
投稿者魔界の仮面弁士
> 例えば、2〜10までの数のそれぞれの公約数をリストアップしたい。

2〜10、すなわち「2 と 3 と 4 と 5 と 6 と 7 と 8 と 9 と 10」
に対する公約数は「1」しか無いと思いますが、それを調べるために、
まずは約数を得たいということでしょうか。
(連続数に対する公約数なら、ほとんどの場合「1」しか残らない気もしますが)


ひとまず約数の列挙ということであれば、

Dim 約数1 = Enumerable.Range(2, 9).ToDictionary(
                Function(a) a,
                Function(b) Enumerable.Range(1, b).Where(
                    Function(c) b Mod c = 0
                ).ToArray()
            )

によって、下記と同じ結果が得られます。

Dim 約数2 As New Dictionary(Of Integer, Integer()) From {
  { 2, { 1, 2 } },
  { 3, { 1, 3 } },
  { 4, { 1, 2, 4 } },
  { 5, { 1, 5 } },
  { 6, { 1, 2, 3, 6 } },
  { 7, { 1, 7 } },
  { 8, { 1, 2, 4, 8 } },
  { 9, { 1, 3, 9 } },
  { 10,{ 1, 2, 5, 10 } }
}



> Dim Yak(2)() As Integer     '2〜10の数のそれぞれの配列を格納する
> 2〜10までの約数だけなら中括弧{}の中に値を入れていけば済みますが、多くなってくるとそうも行きません。

どういう結果が入ってほしいのかイメージできなかったので、実際に得たい結果を
 Yak(0) = New Integer() {…}
 Yak(1) = New Integer() {…}
 Yak(2) = New Integer() {…}
の形式で列挙してみていただけないでしょうか。

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

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