teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

4

文章の修正

2020/10/15 00:38

投稿

tamago_yaki
tamago_yaki

スコア2

title CHANGED
File without changes
body CHANGED
@@ -15,10 +15,11 @@
15
15
  行列Nは、それぞれの青い点1、2、3、...16に、隣接する、三角形の数字を並べたものです。
16
16
 
17
17
 
18
- それぞれ、一番小さい数字からはじまり 、半時計周りであるというルールがあります。
18
+ それぞれ、一番小さい数字からはじまり 、半時計周りです。
19
19
 
20
+
20
21
  例えば、Eは6行目に、三角形6を作る3点、10、11、15があります。
21
- また、Nは、10行目に、点10に隣接する三角形、5、7、8、6があります。
22
+ また、Nは、10行目に、点10に隣接する三角形、5、7、8、6があります。
22
23
 
23
24
 
24
25
 
@@ -27,7 +28,7 @@
27
28
 
28
29
 
29
30
  この行列において、
30
- ~~ (1)~~
31
+ (1)
31
32
  Nのみが与えられたとき、Eの行列を作り上げる
32
33
  (Eの行列の中身の順番には、特に指定はありません)
33
34
  ことができるプログラミングのアルゴリズム1
@@ -57,7 +58,7 @@
57
58
  を考えています。
58
59
 
59
60
  ---
60
- O(N)という制約のあるアルゴリズムをつくっているのですが、
61
+ O(N)のあるアルゴリズムをつくっているのですが、
61
62
  アルゴリズムがどうしても思いつかなくなり、質問をさせて頂きました。
62
63
 
63
64
  ちなみに、
@@ -81,7 +82,7 @@
81
82
  ```
82
83
 
83
84
  と導き出せたのですが、
84
- 上の(2)の効率の良いアルゴリズムが思いつきません。
85
+ 上の(2)の効率の良いアルゴリズムが思いつきませんでした
85
86
 
86
87
  どなたか、効率の良いアルゴリズムを教えて頂けないでしょうか。
87
88
  どうか、宜しくお願い致します。

3

誤字の修正をしました。

2020/10/15 00:38

投稿

tamago_yaki
tamago_yaki

スコア2

title CHANGED
File without changes
body CHANGED
@@ -72,7 +72,7 @@
72
72
  3. Counter ベクトル c=0 を、サイズNnで作る
73
73
  4. N=0 空の行列
74
74
  5. For e = 1: N
75
- 1. I 1:3 #3つエントリーがあるから
75
+ 1. for i 1:3 #3つエントリーがあるから
76
76
  2. n = E[e,i]
77
77
  3. c[n] = c[n] +1
78
78
  4. N[n,cn] = e
@@ -104,7 +104,7 @@
104
104
  1. C = C + 3
105
105
 
106
106
  1. テーブルの作成
107
- 1. If I == 3:
107
+ 1. If i == 3:
108
108
  1. B[ i ] = [ E[e,i], E[e,i-2]]
109
109
  2. A[ i ] = [ E[e,i], E[e,i-2]]
110
110
  2. else:

2

アルゴリズム を追加してみました。

2020/10/14 20:07

投稿

tamago_yaki
tamago_yaki

スコア2

title CHANGED
@@ -1,1 +1,1 @@
1
- 効率の良いアルゴリズムをつくる方法を教えて頂けないでしょうか
1
+ 効率の良いアルゴリズムをつくる方法を教えて頂けないでしょうか
body CHANGED
@@ -84,4 +84,36 @@
84
84
  上の(2)の効率の良いアルゴリズムが思いつきません。
85
85
 
86
86
  どなたか、効率の良いアルゴリズムを教えて頂けないでしょうか。
87
- どうか、宜しくお願い致します。
87
+ どうか、宜しくお願い致します。
88
+
89
+
90
+
91
+
92
+
93
+ (2)のアルゴリズム
94
+
95
+ ```ここに言語を入力
96
+
97
+ 1. EからNe行をの行数を数える
98
+ 2. Nn = Eで一番大きい数をストックする
99
+ 3. Counter ベクトル C=0 #三角形の辺の数
100
+ 4. B=0 空の行列 #三角形の辺を保存する
101
+ 5. A 0 空の行列 #現在みているの三角形辺を保存する
102
+ 6. For e = 1: Nn
103
+ 1. For i 1:3 #3つエントリーがあるが、
104
+ 1. C = C + 3
105
+
106
+ 1. テーブルの作成
107
+ 1. If I == 3:
108
+ 1. B[ i ] = [ E[e,i], E[e,i-2]]
109
+ 2. A[ i ] = [ E[e,i], E[e,i-2]]
110
+ 2. else:
111
+ 1. B[ i ] = [ E[e,i], E[e,i+1]]
112
+ 2. A[ i ] = [ E[e,i], E[e,i+1]]
113
+
114
+
115
+ 1. num=A ∩ B をして、重なった数字をCから消す
116
+ 2. C = C-num
117
+ 3.
118
+ 4. A を空にする。
119
+ ```

1

罫線などを入れてみやすくしました。問題文をわかりやすく書き換えました。

2020/10/14 19:54

投稿

tamago_yaki
tamago_yaki

スコア2

title CHANGED
File without changes
body CHANGED
@@ -21,27 +21,52 @@
21
21
  また、Nは、10行目に、点10に隣接する三角形、5、7、8、6があります。
22
22
 
23
23
 
24
+
25
+ ---
26
+
27
+
28
+
24
29
  この行列において、
25
- (1)
30
+ ~~ (1)~~
26
31
  Nのみが与えられたとき、Eの行列を作り上げる
27
32
  (Eの行列の中身の順番には、特に指定はありません)
28
33
  ことができるプログラミングのアルゴリズム1
34
+ (教えて頂きました。本当にありがとうございました。)
35
+
36
+ ```ここに言語を入力
37
+ 1. N を読み込み、行数Nnを数える
38
+ 2. N の一番大きな数字を見つける #(16)
39
+ 3. 16行x3列のEという空の行列を作る。
40
+ 1. For i 1:Nn # N行のループ
41
+ 1. For j 1: len(N[i]) #Nそれぞれの行の要素数の分だけループ
42
+ 1. E[ N[i ][j] ]に i を ストック
43
+ ```
29
44
 
45
+
46
+
30
- (2)
47
+ __(2)
31
48
  Eのみが与えられたとき、点と点を結ぶ線の数(黒線)を求める、
32
- ことができるアルゴリズム2
49
+ ことができるアルゴリズム2__
33
50
 
51
+ ```ここに言語を入力
52
+ 1.
53
+ ```
54
+
55
+
56
+
34
57
  を考えています。
58
+
59
+ ---
35
- 制約があり、O(N)のアルゴリズムをつくっているのですが、
60
+ O(N)という制約あるアルゴリズムをつくっているのですが、
36
61
  アルゴリズムがどうしても思いつかなくなり、質問をさせて頂きました。
37
62
 
38
63
  ちなみに、
39
64
 
40
65
  E行列からN行列を求めるO(N)アルゴリズムは、
41
66
 
42
- Eの行列から、N行列を求める
43
- ```ここに言語を入力
44
67
 
68
+ ```
69
+ (Eの行列から、N行列を求める)
45
70
  1. EからNe行をの行数を数える
46
71
  2. Nn = Eで一番大きい数をストックする
47
72
  3. Counter ベクトル c=0 を、サイズNnで作る
@@ -52,11 +77,11 @@
52
77
  3. c[n] = c[n] +1
53
78
  4. N[n,cn] = e
54
79
 
55
- コード
80
+
56
81
  ```
57
82
 
58
83
  と導き出せたのですが、
59
- 上の2つの効率の良いアルゴリズムが思いつきません。
84
+ 上の(2)の効率の良いアルゴリズムが思いつきません。
60
85
 
61
86
  どなたか、効率の良いアルゴリズムを教えて頂けないでしょうか。
62
87
  どうか、宜しくお願い致します。