Jump to content
    

Перестановки из шести цифр для крипто-анализатора

Есть учебная задача и в ней код, зашифрованный методом постолбцовой перестановки (транспозиции). Известна длина ключа к шифру – это 6 цифр от 0 до 5, но не известен их порядок следования. Расшифровку кода можно произвести только посредством программы с перебором цифр в ключе.

Есть ли алгоритм позволяющий без повторений последовательно перебрать все сочетания этих неповторяющихся шести цифр.    

Share this post


Link to post
Share on other sites

On 9/20/2024 at 7:00 PM, Serhiy_UA said:

Есть ли алгоритм позволяющий без повторений последовательно перебрать все сочетания этих неповторяющихся шести цифр.

Ессно, есть:

for (int i = 0; i < 6*6*6*6*6*6; i++)
{
  D0 = i%6;
  D1 = i/6%6;
  D2 = i/(6*6)%6;
  D3 = i/(6*6*6)%6;
  D4 = i/(6*6*6*6)%6;
  D5 = i/(6*6*6*6*6)%6;
}

 

Share this post


Link to post
Share on other sites

Немного не то, что хотел получить. Каждая из цифр должна встречаться в сочетании из шести других только один раз. А здесь, например, "0" и "1"  сразу встречаются уже несколько раз.

#include <iostream> 

using namespace std;
int D0,D1,D2,D3,D4,D5;

//-----------------
int main()
{
    for (int i = 0; i < 6*6*6*6*6*6; i++)
    {
          D0 = i%6;
          D1 = i/6%6;
          D2 = i/(6*6)%6;
          D3 = i/(6*6*6)%6;
          D4 = i/(6*6*6*6)%6;
          D5 = i/(6*6*6*6*6)%6;
          cout << D0 << D1 << D2 << D3 << D4 << D5 << endl;
          if (i > 10) break;
    }
}
/* Печать в консоли такая:
    000000
    100000
    200000
    300000
    400000
    500000
    010000
    110000
    210000
    310000
    410000
    510000
*/

Share this post


Link to post
Share on other sites

там 720 значений всего, засуньте в таблицу

Spoiler

012345
012354
012435
012453
012534
012543
013245
013254
013425
013452
013524
013542
014235
014253
014325
014352
014523
014532
015234
015243
015324
015342
015423
015432
021345
021354
021435
021453
021534
021543
023145
023154
023415
023451
023514
023541
024135
024153
024315
024351
024513
024531
025134
025143
025314
025341
025413
025431
031245
031254
031425
031452
031524
031542
032145
032154
032415
032451
032514
032541
034125
034152
034215
034251
034512
034521
035124
035142
035214
035241
035412
035421
041235
041253
041325
041352
041523
041532
042135
042153
042315
042351
042513
042531
043125
043152
043215
043251
043512
043521
045123
045132
045213
045231
045312
045321
051234
051243
051324
051342
051423
051432
052134
052143
052314
052341
052413
052431
053124
053142
053214
053241
053412
053421
054123
054132
054213
054231
054312
054321
102345
102354
102435
102453
102534
102543
103245
103254
103425
103452
103524
103542
104235
104253
104325
104352
104523
104532
105234
105243
105324
105342
105423
105432
120345
120354
120435
120453
120534
120543
123045
123054
123405
123450
123504
123540
124035
124053
124305
124350
124503
124530
125034
125043
125304
125340
125403
125430
130245
130254
130425
130452
130524
130542
132045
132054
132405
132450
132504
132540
134025
134052
134205
134250
134502
134520
135024
135042
135204
135240
135402
135420
140235
140253
140325
140352
140523
140532
142035
142053
142305
142350
142503
142530
143025
143052
143205
143250
143502
143520
145023
145032
145203
145230
145302
145320
150234
150243
150324
150342
150423
150432
152034
152043
152304
152340
152403
152430
153024
153042
153204
153240
153402
153420
154023
154032
154203
154230
154302
154320
201345
201354
201435
201453
201534
201543
203145
203154
203415
203451
203514
203541
204135
204153
204315
204351
204513
204531
205134
205143
205314
205341
205413
205431
210345
210354
210435
210453
210534
210543
213045
213054
213405
213450
213504
213540
214035
214053
214305
214350
214503
214530
215034
215043
215304
215340
215403
215430
230145
230154
230415
230451
230514
230541
231045
231054
231405
231450
231504
231540
234015
234051
234105
234150
234501
234510
235014
235041
235104
235140
235401
235410
240135
240153
240315
240351
240513
240531
241035
241053
241305
241350
241503
241530
243015
243051
243105
243150
243501
243510
245013
245031
245103
245130
245301
245310
250134
250143
250314
250341
250413
250431
251034
251043
251304
251340
251403
251430
253014
253041
253104
253140
253401
253410
254013
254031
254103
254130
254301
254310
301245
301254
301425
301452
301524
301542
302145
302154
302415
302451
302514
302541
304125
304152
304215
304251
304512
304521
305124
305142
305214
305241
305412
305421
310245
310254
310425
310452
310524
310542
312045
312054
312405
312450
312504
312540
314025
314052
314205
314250
314502
314520
315024
315042
315204
315240
315402
315420
320145
320154
320415
320451
320514
320541
321045
321054
321405
321450
321504
321540
324015
324051
324105
324150
324501
324510
325014
325041
325104
325140
325401
325410
340125
340152
340215
340251
340512
340521
341025
341052
341205
341250
341502
341520
342015
342051
342105
342150
342501
342510
345012
345021
345102
345120
345201
345210
350124
350142
350214
350241
350412
350421
351024
351042
351204
351240
351402
351420
352014
352041
352104
352140
352401
352410
354012
354021
354102
354120
354201
354210
401235
401253
401325
401352
401523
401532
402135
402153
402315
402351
402513
402531
403125
403152
403215
403251
403512
403521
405123
405132
405213
405231
405312
405321
410235
410253
410325
410352
410523
410532
412035
412053
412305
412350
412503
412530
413025
413052
413205
413250
413502
413520
415023
415032
415203
415230
415302
415320
420135
420153
420315
420351
420513
420531
421035
421053
421305
421350
421503
421530
423015
423051
423105
423150
423501
423510
425013
425031
425103
425130
425301
425310
430125
430152
430215
430251
430512
430521
431025
431052
431205
431250
431502
431520
432015
432051
432105
432150
432501
432510
435012
435021
435102
435120
435201
435210
450123
450132
450213
450231
450312
450321
451023
451032
451203
451230
451302
451320
452013
452031
452103
452130
452301
452310
453012
453021
453102
453120
453201
453210
501234
501243
501324
501342
501423
501432
502134
502143
502314
502341
502413
502431
503124
503142
503214
503241
503412
503421
504123
504132
504213
504231
504312
504321
510234
510243
510324
510342
510423
510432
512034
512043
512304
512340
512403
512430
513024
513042
513204
513240
513402
513420
514023
514032
514203
514230
514302
514320
520134
520143
520314
520341
520413
520431
521034
521043
521304
521340
521403
521430
523014
523041
523104
523140
523401
523410
524013
524031
524103
524130
524301
524310
530124
530142
530214
530241
530412
530421
531024
531042
531204
531240
531402
531420
532014
532041
532104
532140
532401
532410
534012
534021
534102
534120
534201
534210
540123
540132
540213
540231
540312
540321
541023
541032
541203
541230
541302
541320
542013
542031
542103
542130
542301
542310
543012
543021
543102
543120
543201
543210

 

 

Share this post


Link to post
Share on other sites

On 9/20/2024 at 8:00 PM, Serhiy_UA said:

Есть учебная задача и в ней код, зашифрованный методом постолбцовой перестановки (транспозиции). Известна длина ключа к шифру – это 6 цифр от 0 до 5, но не известен их порядок следования. Расшифровку кода можно произвести только посредством программы с перебором цифр в ключе.

Есть ли алгоритм позволяющий без повторений последовательно перебрать все сочетания этих неповторяющихся шести цифр.    

Есть питон!

import itertools
for i in itertools.permutations('123'):
    print(i)

    
('1', '2', '3')
('1', '3', '2')
('2', '1', '3')
('2', '3', '1')
('3', '1', '2')
('3', '2', '1')

Для 6 цифр табличка будет чуток подлинее, но да, @_pv прав, там 720 значений.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...