質問編集履歴
3
if elseの条件更新
title
CHANGED
File without changes
|
body
CHANGED
@@ -67,6 +67,9 @@
|
|
67
67
|
protected void compute() {
|
68
68
|
|
69
69
|
BigInteger diff = max.subtract(i);
|
70
|
+
//Random()の可能なシード値をループしてnを因数分解し、そこからpを作成して(pをテストするだけでよいので、qは必要ありません)、pを因数としてテストします。
|
71
|
+
|
72
|
+
|
70
73
|
if (diff.compareTo(THRESHOLD)<0) {
|
71
74
|
|
72
75
|
// max 未満の各素数をループし、n を除算するかどうかを確認します。 その場合は、見つ
|
@@ -77,7 +80,7 @@
|
|
77
80
|
ForkJoinRsaTask(i,n,max);
|
78
81
|
|
79
82
|
}
|
80
|
-
else {
|
83
|
+
else {//それが機能しない場合
|
81
84
|
|
82
85
|
//リストを半分に切り、2 つの半分に対して ForkJoinRsaTask を呼び出します(マルチスレ
|
83
86
|
ッドクイックソートと同様)
|
2
自分で試したことと、質問内容を更新
title
CHANGED
File without changes
|
body
CHANGED
@@ -68,18 +68,23 @@
|
|
68
68
|
|
69
69
|
BigInteger diff = max.subtract(i);
|
70
70
|
if (diff.compareTo(THRESHOLD)<0) {
|
71
|
-
|
71
|
+
|
72
72
|
// max 未満の各素数をループし、n を除算するかどうかを確認します。 その場合は、見つ
|
73
73
|
かった値を出力し、システムを終了してすべてのスレッドを終了します
|
74
74
|
//ループを通過するたびに、BigIntegernextProbablePrime メソッドを使用してテストする
|
75
75
|
次の値を選択します
|
76
|
-
|
76
|
+
int i=0,n=0,max=0;
|
77
|
+
ForkJoinRsaTask(i,n,max);
|
77
78
|
|
78
79
|
}
|
79
80
|
else {
|
80
|
-
|
81
|
+
|
81
82
|
//リストを半分に切り、2 つの半分に対して ForkJoinRsaTask を呼び出します(マルチスレ
|
82
83
|
ッドクイックソートと同様)
|
84
|
+
List<ForkJoinRsaTask> folkjoinrsatask=new ArrayList<ForkJoinRsaTask>();
|
85
|
+
folkjoinrsatask.add(0);
|
86
|
+
folkjoinrsatask.add(1);
|
87
|
+
List<ForkJoinRsaTask> sbList = folkjoinrsatask.subList(1, 3);
|
83
88
|
|
84
89
|
}
|
85
90
|
}
|
@@ -87,8 +92,9 @@
|
|
87
92
|
|
88
93
|
|
89
94
|
|
90
|
-
で
|
95
|
+
computeメソッドで、
|
91
96
|
|
92
|
-
|
97
|
+
max 未満の各素数をループし、n を除算するかどうかを確認します。 その場合は、見つ
|
93
|
-
|
94
|
-
|
98
|
+
かった値を出力し、システムを終了してすべてのスレッドを終了し、
|
99
|
+
ループを通過するたびに、BigIntegernextProbablePrime メソッドを使用してテストするために値を選択し、無理ならelseでリストを半分に切り、2 つの半分に対して ForkJoinRsaTask を呼び出します(マルチスレ
|
100
|
+
ッドクイックソートと同様)にはどうしたらいいのかわかりません。(私のコードだとエラーが出ます。)
|
1
和訳
title
CHANGED
File without changes
|
body
CHANGED
@@ -38,16 +38,16 @@
|
|
38
38
|
BigInteger max = TWO.pow(calcBitLength+1).subtract(BigInteger.ONE);
|
39
39
|
System.out.println("bitLength="+calcBitLength+ ",\n max="+max);
|
40
40
|
|
41
|
-
|
41
|
+
// nを因数分解しようとします
|
42
|
-
|
42
|
+
// BigInteger i = n.sqrt();
|
43
43
|
BigInteger i = n.multiply(n);
|
44
44
|
System.out.println("initial i="+i);
|
45
45
|
|
46
46
|
ForkJoinPool fjPool = new ForkJoinPool();
|
47
47
|
|
48
|
-
|
48
|
+
// ForkJoinRsaTaskを機能させた後、次の行をループに入れます
|
49
|
-
// to incrementally attack a smaller range of the search space, maybe 1000 or 20000...
|
50
|
-
|
49
|
+
//検索スペースのより狭い範囲(おそらく1000または20000)を段階的に攻撃します。
|
50
|
+
//サイズをいじって、何が最適かを確認できます
|
51
51
|
ForkJoinRsaTask forkJoinRsaTask = new ForkJoinRsaTask(n, i, max);
|
52
52
|
fjPool.invoke(forkJoinRsaTask);
|
53
53
|
}
|
@@ -68,15 +68,19 @@
|
|
68
68
|
|
69
69
|
BigInteger diff = max.subtract(i);
|
70
70
|
if (diff.compareTo(THRESHOLD)<0) {
|
71
|
-
|
71
|
+
//コード入れたい
|
72
|
-
|
72
|
+
// max 未満の各素数をループし、n を除算するかどうかを確認します。 その場合は、見つ
|
73
|
+
かった値を出力し、システムを終了してすべてのスレッドを終了します
|
73
|
-
|
74
|
+
//ループを通過するたびに、BigIntegernextProbablePrime メソッドを使用してテストする
|
75
|
+
次の値を選択します
|
74
76
|
|
75
77
|
|
76
78
|
}
|
77
79
|
else {
|
78
|
-
|
80
|
+
//コードを入れたい
|
79
|
-
|
81
|
+
//リストを半分に切り、2 つの半分に対して ForkJoinRsaTask を呼び出します(マルチスレ
|
82
|
+
ッドクイックソートと同様)
|
83
|
+
|
80
84
|
}
|
81
85
|
}
|
82
86
|
}
|