java 数字组合_Java:给出数字N的true和false组合的生成器;

我尽可能简化任务,所以我可以将它应用到我的算法中.

这是数学家和程序员面临的挑战:

我需要创建一个传递参数int n的方法:

public void optionality_generator(int n){

//some kind of loops, or recursions...to make it workable

System.out.println("current combination: ...");

}

输出应显示true和false的所有可能组合.

这是N = 1的例子; N = 2; N = 3; N = 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等…) .也许,这种模式将有助于使整个算法更有效,不确定这一点.

先感谢您!

解决方法:

这是一种仅使用Java API的基本方法:

final int n = 3;

for (int i = 0; i < Math.pow(2, n); i++) {

String bin = Integer.toBinaryString(i);

while (bin.length() < n)

bin = "0" + bin;

System.out.println(bin);

}

结果:

000

001

010

011

100

101

110

111

当然,您可以将n设置为您喜欢的任何内容.并且,通过此结果,您可以从字符串中选择第n个字符为true / false.

如果您只需检查某位是否为真,则无需将其转换为字符串.这只是为了说明输出值.

标签:java,recursion,boolean,combinations,generator

来源: https://codeday.me/bug/20190928/1829354.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值