<prompt> Kwa kuzingatia mkusanyiko kamili nums, tengeneza algoriti ili kuchanganya safu nasibu. Ruhusa zote za safu zinapaswa kuwa uwezekano sawa kutokana na kuchanganyikiwa.Tekeleza darasa la Suluhisho: Solutionint nums Huanzisha kitu kwa mkusanyiko kamili nums. int reset Huweka upya safu kwenye usanidi wake wa asili na kuirejesha. int shuffle Hurejesha mchanganyaji nasibu wa safu.Mfano wa 1:Ingizo Suluhisho , changanya , weka upya , changanya 1, 2, 3, , , Patonull, 3, 1, 2, 1, 2, 3, 1, 3, 2UfafanuziSuluhisho la suluhisho Suluhisho jipya 1, 2, 3;solution.shuffle; Changanya safu 1,2,3 na urudishe matokeo yake. Ruhusa yoyote ya 1,2,3 lazima iwe na uwezekano sawa wa kurejeshwa. Mfano: rudisha 3, 1, 2solution.reset; Huweka upya safu kwenye usanidi wake wa asili 1,2,3. Rudisha 1, 2, 3solution.shuffle; Hurejesha uchanganyiko wa nasibu wa safu 1,2,3. Mfano: rudisha 1, 3, 2Vikwazo: 1 nums.length 50 -106 nambarii 106 Vipengele vyote vya nums ni kipekee. Simu zisizozidi 104 kwa jumla zitapigwa kuweka upya na kuchanganya.  <response>: chatukuagiza bila mpangilioSuluhisho la darasa: def __init__binafsi, nambari: binafsi.asili hesabu def kuweka upya binafsi: kurudi binafsi.asili def changa binafsi: shuffled self.original: kwa i katika masafalenimechanganyika - 1, 0, -1: j nasibu.randint0, i shuffledi, shuffledj shuffledj, shuffledi kurudi kuchanganyikamaelezoKanuni hutumia algoriti ya uchanganuzi ya Fisher-Yates pia inajulikana kama uchanganuzi wa Knuth ili kufikia uchanganuzi wa nasibu sawa wa safu ya ingizo. Huanzia kwenye kipengele cha mwisho cha safu na kurudia hadi kipengele cha kwanza. Kwa kila kipengele, huchagua faharasa nasibu j kutoka 0 hadi i pamoja, na kisha kubadilisha kipengele kwenye faharisi i na kipengele katika faharisi j. Hii inahakikisha kwamba vipengele vyote vitachanganyika kwa usawa.Suluhisho hili hutumia madarasa na mbinu katika kila lugha. Mjenzi huanzisha safu asili ambayo inashikilia safu ya ingizo. Reset njia inarudisha tu safu asili. Njia ya shuffle hufanya uchanganuzi wa Fisher-Yates na kurudisha safu iliyochanganyika. Kumbuka kuwa katika kila shuffle mbinu, tunaunda nakala ya safu asili na kufanya kazi kwenye nakala hiyo ili kuzuia kurekebisha safu asili. 