タイトル | : Re: ジャグ配列でRedim Preserve みたいな使い方をしたいのです |
記事No | : 11895 |
投稿日 | : 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() {…} の形式で列挙してみていただけないでしょうか。
|