的循環羣找到元素如何檢查元素是否屬於一個給定的生成特定的環狀組素數階的G,?現在我簡單地生成組中的所有元素,將它們保存到容器中並檢查元素是否在其中。這是目前使用的代碼即時生成組中的所有元素:黃金爲了
public HashSet<BigInteger> group_elements(BigInteger g, BigInteger q) {
HashSet<BigInteger> group = new HashSet<BigInteger>();
BigInteger element = modPow(g,ONE,q);
for (int i = 2; !group.contains(element); i++) {
group.add(element);
element = modPow(g, BigInteger.valueOf(i), q);
}
return group;
}
並看看一個元素是該組中,我只是檢查:
if (group.contains(num)) { ... }
正如你所看到的語言就是Java
哪種語言,你使用和**讓我們瞭解您已經嘗試** – 2010-03-25 18:22:54
通常情況下,我不會只是寫出來的代碼,但你的編程似乎罰款。我認爲,這是你所面臨的問題的數學。 – 2010-03-25 18:59:44
等等,什麼?你的小組是q階的乘法羣,對嗎?所以*任何不能被q整除的整數都是該組的一個元素。 [或者,如果你挑選一個代表,每個殘基類,你的代碼的話,那麼該組只有{1,...,Q-1}]無論哪種方式,你不必寫了這麼多碼。 :-) – ShreevatsaR 2010-03-25 22:47:00