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

回答編集履歴

6

import 抜けてた

2021/12/02 00:28

投稿

taront
taront

スコア59

answer CHANGED
@@ -44,6 +44,7 @@
44
44
  ```
45
45
 
46
46
  ```
47
+ import numpy as np
47
48
  import random
48
49
  import more_itertools
49
50
 

5

ミス修正

2021/12/02 00:28

投稿

taront
taront

スコア59

answer CHANGED
@@ -56,7 +56,7 @@
56
56
  hist, bins = np.histogram(orbit, range=(0, 1), bins=N)
57
57
 
58
58
  def get_ratio(r_min:float, r_max:float, arr:np.ndarray)->float:
59
- pick_elems = arr[(r_min <= orbit) & (arr < r_max)]
59
+ pick_elems = arr[(r_min <= arr) & (arr < r_max)]
60
60
  m_hist, _ = np.histogram(pick_elems, range=(r_min, r_max), bins=len(pick_elems))
61
61
  return np.count_nonzero(m_hist)/len(m_hist)
62
62
 

4

修正

2021/12/02 00:24

投稿

taront
taront

スコア59

answer CHANGED
@@ -55,7 +55,7 @@
55
55
 
56
56
  hist, bins = np.histogram(orbit, range=(0, 1), bins=N)
57
57
 
58
- def get_ratio(r_min:float, r_max:float, arr:np.ndarray):
58
+ def get_ratio(r_min:float, r_max:float, arr:np.ndarray)->float:
59
59
  pick_elems = arr[(r_min <= orbit) & (arr < r_max)]
60
60
  m_hist, _ = np.histogram(pick_elems, range=(r_min, r_max), bins=len(pick_elems))
61
61
  return np.count_nonzero(m_hist)/len(m_hist)

3

追加

2021/12/02 00:18

投稿

taront
taront

スコア59

answer CHANGED
@@ -33,4 +33,35 @@
33
33
 
34
34
  print(len(results))
35
35
  print(results)
36
+ ```
37
+
38
+
39
+ [補足]
40
+ 少しpythonっぽくしてみました
41
+
42
+ ```
43
+ !pip install more-itertools
44
+ ```
45
+
46
+ ```
47
+ import random
48
+ import more_itertools
49
+
50
+ random.seed(110)
51
+ orbit = np.asarray([random.uniform(0,1) for _ in range(10000000)])
52
+ print('start')
53
+
54
+ N = 100
55
+
56
+ hist, bins = np.histogram(orbit, range=(0, 1), bins=N)
57
+
58
+ def get_ratio(r_min:float, r_max:float, arr:np.ndarray):
59
+ pick_elems = arr[(r_min <= orbit) & (arr < r_max)]
60
+ m_hist, _ = np.histogram(pick_elems, range=(r_min, r_max), bins=len(pick_elems))
61
+ return np.count_nonzero(m_hist)/len(m_hist)
62
+
63
+ results = [get_ratio(r[0], r[1], orbit) for r in more_itertools.windowed(bins,2,step = 1)]
64
+
65
+ print(len(results))
66
+ print(results)
36
67
  ```

2

import 抜けてた

2021/12/02 00:16

投稿

taront
taront

スコア59

answer CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  ```
4
4
  import numpy as np
5
+ import random
5
6
 
6
7
  random.seed(110)
7
8
  orbit = np.asarray([random.uniform(0,1) for _ in range(10000000)])

1

ミス修正

2021/12/01 08:43

投稿

taront
taront

スコア59

answer CHANGED
@@ -3,9 +3,6 @@
3
3
  ```
4
4
  import numpy as np
5
5
 
6
- # orbit = np.random.rand(100) # サイズが100の配列の乱数
7
- # print(orbit)
8
-
9
6
  random.seed(110)
10
7
  orbit = np.asarray([random.uniform(0,1) for _ in range(10000000)])
11
8
  print('start')
@@ -34,6 +31,5 @@
34
31
  results.append(m_p)
35
32
 
36
33
  print(len(results))
37
- # print(np.sum(results))
38
34
  print(results)
39
35
  ```