Pythonですべてのペアが適切である特定の配列の任意のシーケンスの最大サイズを見つけるプログラム
サイズnのシーケンス番号があるとします。すべてのペア(p、q)が適切なペアであるnumsのサブシーケンスの最大サイズを見つける必要がありますか?ペイトは、次の条件の少なくとも1つを保持している場合にのみ、適切なペアであると言われます。1.pの個別の素数除数の数のパリティがbのパリティと等しい。たとえば、値18には、2と3の2つの異なる素数の約数があります。2。pのすべての正の約数の合計のパリティはqと同じです。
したがって、入力がnums =[2,3,6,8]の場合、出力は3
になります。
これを解決するには、次の手順に従います-
- n:=numsのサイズ
- 3つの空のリストcnt、total、resultを定義します
- numsの各iについて、
- count:=0、tot:=0
- prime:=新しいリスト
- numsのjごとに、
- (2からjの範囲のすべてのkに対してj mod k)が真の場合、
- プライムの最後にjを挿入
- (2からjの範囲のすべてのkに対してj mod k)が真の場合、
- プライムの各jについて、
- i mod jが0の場合、
- count:=count + 1
- i mod jが0の場合、
- カウントが偶数の場合、
- cntの最後に「odd」を挿入
- それ以外の場合、
- cntの最後に「偶数」を挿入
- 1からiの範囲のjについては、
- i mod jが0と同じ場合、
- tot:=tot + j
- i mod jが0と同じ場合、
- totが奇数の場合、
- 合計の最後に「奇数」を挿入
- それ以外の場合、
- 合計の最後に「偶数」を挿入
- 0からn-2の範囲のiについては、
- i +1からn-1の範囲のjの場合、do
- cnt[i]がcnt[j]と同じであるか、total[i]がtotal[j]と同じである場合、
- 結果の最後にnums[i]を挿入
- jがn-2と同じ場合、
- 結果の最後にnums[j]を挿入
- cnt[i]がcnt[j]と同じであるか、total[i]がtotal[j]と同じである場合、
- i +1からn-1の範囲のjの場合、do
- result:=resultからの新しいセットからの新しいリスト
- 結果のサイズを返す
例
理解を深めるために、次の実装を見てみましょう-
def solve(nums): n = len(nums) cnt = [] total = [] result = [] for i in nums: count = 0 tot = 0 prime = [] for j in nums: if all(j % k for k in range(2, j)) == True: prime.append(j) for j in prime: if i % j == 0: count += 1 if count % 2: cnt.append('odd') else: cnt.append('even') for j in range(1,i+1): if i % j == 0: tot += j if tot % 2: total.append('odd') else: total.append('even') for i in range(n-1): for j in range(i+1, n): if cnt[i] == cnt[j] or total[i] == total[j]: result.append(nums[i]) if j == n-1: result.append(nums[j]) result = list(set(result)) return len(result) nums = [2,3,6,8] print(solve(nums))
入力
15, 3, 8
出力
3
-
Pythonで指定されたバイトニックシーケンスのバイトニックポイントを見つける
ビットニックシーケンスがあるとすると、その中にビットニックポイントを見つける必要があります。私たちが知っているように、Bitonicシーケンスは、最初に厳密に増加し、特定のポイントの後に厳密に減少する数列です。この点はバイトニック点です。シーケンスの増加のみまたは減少のみの場合、バイトニックポイントは使用できません。 したがって、入力が[7、8、9、12、10、6、3、2]の場合、出力は12になります。 これを解決するには、次の手順に従います- 関数binary_search(array、l、r)を定義します l <=rの場合、- m:=(l + r)/ / 2 array
-
与えられたサイズのグループで配列を逆にするPythonプログラム?
=1の場合、配列内のすべての要素を逆にします。 アルゴリズム Revarray(A,n,p) /* A is an integer Array, n is the size of an array and every sub-array of size p starting from the beginning of the array and reverse it.*/ Step 1: i is the loop control variable which is initialized by 0. Step 2: using while loop check i is less than