Döngüsel fark kümesi , benzersiz bir özelliğe sahip bir dizi pozitif tamsayıdır:
- Izin vermek
nkümedeki en büyük tamsayı olmak. - Izin
rvermek herhangi bir tamsayı (kümede mutlaka) 0'dan büyük ama eşit veya daha küçük olsunn/2. - Izin
kolmak çözümlerin sayısı için(b - a) % n = rneredeavebsetin herhangi üyeleridir. Her çözüm sıralı bir çifttir(a,b). (Modulo'nun bu sürümünün,nbirçok dilde yapılan uygulamaların aksine, ekleyerek negatif sayıları pozitif hale getirdiğini unutmayın .) - Son olarak, eğer sadece bu döngüsel bir fark kümesi ise, değeri
kseçiminize bağlı değildirr. Yani, tüm değerlerryukarıdaki uyum için aynı sayıda çözüm sunar.
Bu, aşağıdaki örnekle gösterilebilir:
Cyclic difference set: {4,5,6,8,9,11}
0 < r <= 11/2, so r = 1,2,3,4,5
r=1: (4,5) (5,6) (8,9)
r=2: (4,6) (6,8) (9,11)
r=3: (5,8) (6,9) (8,11)
r=4: (4,8) (5,9) (11,4) since (4-11)%11=(-7)%11=4
r=5: (4,9) (6,11) (11,5)
Her değerinin raynı sayıda çözümü vardır, bu durumda 3, bu yüzden bu döngüsel bir fark kümesidir.
Giriş
Girdi, pozitif tamsayıların bir listesi olacaktır. Bu bir dizi özellik olduğundan, bu giriş varsayıyorum değil sıralanmış. Sıfır olsa da n, en azından bunun olduğunu varsayabilirsiniz .2k
Çıktı
Set döngüsel bir fark kümesi ise programınız / fonksiyonunuz doğruluk değeri veya aksi takdirde bir falsey değeri vermelidir.
Test Durumları
Geçerli döngüsel fark setleri:
10,12,17,18,21
7,5,4
57,1,5,7,17,35,38,49
1,24,35,38,40,53,86,108,114,118,135,144,185,210,254,266,273
16,3,19,4,8,10,15,5,6
8,23,11,12,15,2,3,5,7,17,1
( kuralları farklı olmasına rağmen veri kaynağı )
Geçersiz döngüsel fark setleri:
1,2,3,4,20
57,3,5,7,17,35,38,49
3,4,5,9
14,10,8
bve aaynı sayı ise (b-a)%n = 0, ancak 0, çözüm aradığınız değerlerden biri değildir. Dolayısıyla, aynı sayıda olmaları konusunda açık bir yasak yok, ama asla olmayacaklar.
7 7 7Geçersiz giriş olsaydı gerçekten tercih ederim . Bir set değerleri tekrarlamaz
7 7 7başka bir kullanıcı tarafından istendi, ancak bir küme olmadığı için kaldırdım.
rtarafından 0 < r <= max(input)/2, bunun yerine 0 < r < max(input)biz elde edebilirsiniz, çünkü r > max(input)/2basitçe çıkarma çevirerek davaları r <= max(input)/2durumlarda.
avebaynı üyeyi (ille olmaka ≠ b)?