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 opAdjoint XXveya Controlled X da sayılır, ancak ise opControlled Xyalnı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.