Я связал, чтобы максимально упростить задачу, чтобы я мог применить его к своему алгоритму.
А вот задача для математиков и программистов:
Мне нужно создать метод, в который я передаю параметр int n:
public void optionality_generator(int n){
//some kind of loops, or recursions...to make it workable
System.out.println("current combination: ...");
}
Вывод должен показывать все возможные комбинации истинных и ложных значений.
Вот примеры, где N=1; Н=2; Н=3; Н=4; N=5, где x=ложь и 0=истина; Обратите внимание, что пустые линии разрыва предназначены только для того, чтобы вам было легче распознавать паттерны. Надеюсь, я включил все возможные комбинации):
Combination of 1:
0
x
Combination of 2:
00
x0
0x
xx
Combination of 3:
000
X00
0X0
00X
XX0
0XX
XXX
Combination of 4:
0000
X000
0X00
00X0
000X
XX00
X0X0
X00X
0XX0
0X0X
00XX
XXX0
XX0X
X0XX
0XXX
XXXX
Combination of 5:
00000
X0000
0X000
00X00
000X0
0000X
XX000
X0X00
X00X0
X000X
X0X00
X00X0
X000X
0XX00
0X0X0
0X00X
00XX0
00X0X
000XX
XXX00
XX0X0
XX00X
X0XX0
X0X0X
X00XX
0XXX0
0XX0X
00XXX
XXXX0
XXX0X
XX0XX
X0XXX
0XXXX
XXXXX
Кроме того, если вы видите вывод, вот шаблон, который я распознал, что все комбинации перевернуты пополам (например, первая комбинация 00000, последняя будет XXXXX, вторая X0000, один перед последним будет 0XXXX и т. д.). Возможно, этот паттерн поможет сделать весь алгоритм более эффективным, в этом я не уверен. Заранее спасибо!