AllowAtMostNCallsCA işlemi
Uyarı
Bu belge, Modern QDK ile değiştirilen Klasik QDK'yi ifade eder.
Lütfen Modern QDK için API belgelerine bakın https://aka.ms/qdk.api .
Ad Alanı: Microsoft.Quantum.Diagnostics
Paket: Microsoft.Quantum.Standard
Bu işleme yapılan bir çağrı ile onun bitişikliği arasında, belirli bir işlemin en fazla belirli bir sayıda çağrıldığını onaylar.
İşlem çağrıları, belirtilen değişkeni içeriyorsa dikkate alınır. Örneğin, ise op
Adjoint X
X
veya Controlled X
da sayılır, ancak ise op
Controlled X
yalnızca Controlled X
veya Controlled Adjoint X
sayılır.
operation AllowAtMostNCallsCA<'TInput, 'TOutput> (nTimes : Int, op : ('TInput => 'TOutput), message : String) : Unit is Adj
Giriş
nTimes : Int
Çağrılabilecek en fazla sayı op
.
op: 'TInput => 'TOutput
Çağrıları kısıtlanacak olan bir işlem.
message : String
Hata durumunda görüntülenecek bir ileti.
Çıkış : Birim
Tür Parametreleri
'TInput
'TOutput
Örnek
Bu tanılamayı destekleyen makinelerde yürütülürken aşağıdaki kod parçacığı başarısız olur:
within {
AllowAtMostNCallsCA(3, H, "Too many calls to H.");
} apply {
use register = Qubit[4];
// Fails since this calls H four times, rather than the
// allowed maximum of three.
ApplyToEach(H, register);
}
Başka bir örnek, kısıtlı çağrıların nasıl işlendiğini gösterir.
within {
// Both tests will pass in this case
AllowAtMostNCallsCA(1, Controlled H, "Too many calls to Controlled H.");
AllowAtMostNCallsCA(2, H, "Too many calls to H or Controlled H.");
} apply {
use (a, b) = (Qubit(), Qubit());
H(a);
Controlled H([a], b);
ResetAll([a, b]);
}
Açıklamalar
Bu işlem, desteklemeyen hedeflerde işlem yapılmamasıyla değiştirilebilir.