<prompt> Kuna m x n gridi ya jozi matrix yenye thamani zote zilizowekwa 0 mwanzoni. Tengeneza algoriti ili kuchagua faharasa bila mpangilio i, j ambapo matrixij 0 na kuigeuza hadi 1. Fahirisi zote i, j ambapo matrixij 0 zinapaswa kuwa na uwezekano sawa wa kurejeshwa.Boresha kanuni yako ili kupunguza idadi ya simu zinazopigwa kwa imejengewa ndani utendakazi nasibu wa lugha yako na uboreshe utata wa saa na nafasi.Tekeleza darasa la Suluhisho: Solutionint m, int n Huanzisha kipengee kwa ukubwa wa matrix ya mfumo wa jozi m na n. int flip Hurejesha faharasa nasibu i, j ya matrix ambapo matrixij 0 na kuigeuza hadi 1. void reset Huweka upya thamani zote za matrix kuwa 0.Mfano wa 1:Ingizo Suluhisho , pindua, pindua, pindua, weka upya, pindua3, 1, , , , , Patonull, 1, 0, 2, 0, 0, 0, null, 2, 0UfafanuziSuluhisho la suluhisho Suluhisho jipya 3, 1;solution.flip; kurudi 1, 0, 0,0, 1,0, na 2,0 zinapaswa kuwa na uwezekano sawa wa kurejeshwa.solution.flip; rudisha 2, 0, Kwa kuwa 1,0 ilirejeshwa, 2,0 na 0,0solution.flip; return 0, 0, Kulingana na fahirisi zilizorejeshwa hapo awali, ni 0,0 pekee inayoweza kurejeshwa.solution.reset; Thamani zote zimewekwa upya hadi 0 na zinaweza kurejeshwa.solution.flip; kurudi 2, 0, 0,0, 1,0, na 2,0 zinapaswa kuwa na uwezekano sawa wa kurejeshwa.Vikwazo: 1 m, n 104 Kutakuwa na angalau kisanduku kimoja bila malipo kwa kila simu ili kugeuza. Angalau zaidi simu 1000 zitapigwa kugeuza na kuweka upya.  <response>: chatukuagiza bila mpangilioSuluhisho la darasa: def __init__binafsi, m: int, n: int: self.m, self.n m, n binafsi.jumla m n self.matrix 0 n kwa _ katika masafam def flip binafsi: idx nasibu.randint0, self.jumla - 1 binafsi.jumla - 1 kwa i in rangeself.m: kwa j katika safuself.n: ikiwa self.matrixij 0: ikiwa idx 0: self.matrixij 1 kurudi i, j idx - 1 kurudi -1, -1 Mstari huu haupaswi kufikiwa kamwe def kuweka upya binafsi: binafsi.jumla binafsi.m binafsi.n kwa safu katika self.matrix: kwa j katika safuself.n: safu j 0maelezo1. Matrix imeanzishwa kwa m na n, na kihesabu kinaanzishwa ili kufuatilia nambari iliyobaki ya 0.2. Kitendakazi cha kugeuza kinapoitwa, faharasa nasibu katika masafa ya 0 hadi nambari iliyobaki ya 0 inatolewa. Halafu, matrix inarudiwa kupitia ili kupata kipengee kinacholingana na faharisi ya nasibu.3. Katika kitendakazi cha kugeuza, kwa kila seli yenye 0, faharasa nasibu hupunguzwa. Faharasa ya nasibu inapofikia 0, kisanduku hupinduliwa hadi 1 na nafasi yake inarudishwa.4. Weka upya chaguo za kukokotoa huweka upya kihesabu na kuweka vipengele vyote kwenye tumbo hadi 0.Kanuni hii inaruhusu uwezekano sawa wa kuchagua kisanduku chochote kilicho na 0 huku ukipunguza idadi ya simu kwa chaguo za kukokotoa zilizojumuishwa ndani. Uteuzi wa nasibu huhakikisha nafasi sawa kwa kila mgombea, na visanduku hutembelewa mara moja tu. Kitendakazi cha kuweka upya ni Om n, lakini hakuna uwezekano wa kuwa suala katika mazoezi kutokana na vikwazo. 