我已经分开了一个测试,以确定两个计划项目是否重叠,因为它的不可读性.
是否有任何应用程序可以帮助简化逻辑语句?
示例:(最初是一个错误的示例,但是暴露了我请求的原因)
if (x < y && y < z && x < z)
Run Code Online (Sandbox Code Playgroud)
可以减少到
if (x < y && y < z)
Run Code Online (Sandbox Code Playgroud)
我的代码是:
return (shift.Start <= shift2.Start && shift.End >= shift2.End) || (shift2.Start <= shift.Start && shift2.End >= shift.Start)
Run Code Online (Sandbox Code Playgroud)
我希望能够更简单,我相信这是可能的,只是不确定如何.
看到这是真正与语言无关的,即使转换到不同的脚本来寻找可能性也会很好,例如,不需要它在C#中.
我需要将这个布尔表达式简化为最简单的形式.鉴于最简单的形式包含3个术语和7个文字.
表达式是:
x'yz + w'x'z + x'y + wxy + w'y'z
Run Code Online (Sandbox Code Playgroud)
我们在课堂上尝试了这一点,甚至我们的背诵老师都无法理解.
任何帮助,将不胜感激.
我想更好地组织以下两个if
陈述:
if(A || B){
do stuff...
}
if(A && ! B){
do other stuff...
}
Run Code Online (Sandbox Code Playgroud)
有没有更好的办法?
编辑:在第二次发言!
之前B
,抱歉...
我有以下C语句:
int res = x & (x ^ y);
Run Code Online (Sandbox Code Playgroud)
有没有办法做同样的事情,但使用x
和y
每次只有一次?
例如:
x | (~x & y) == x | y
Run Code Online (Sandbox Code Playgroud) 当我在一个变量上列出所有布尔运算符时,我找到一个什么都不做的运算符:
A f(A)
0 0
1 1
Run Code Online (Sandbox Code Playgroud)
这个运营商有官方名称吗?
再见
我试图理解一些像6 - 10年前那样快速而肮脏的 C/C++代码.
这个if-expression是什么意思?
int s_adr, e_adr, empf_adr;
// ...
if (success == OK &&
(s_adr & 0x1f) == empf_adr &&
(e_adr & 0x20) &&
(s_adr & 0x20)
)
Run Code Online (Sandbox Code Playgroud)
是(e_adr & 0x20)
一样的((e_adr & 0x20) == 1)
吗?或者我该如何理解?我想当你非常了解C和C++时,这可能是一个愚蠢的问题.但我没有.
我试图让这个评估为假.
(False,)
Run Code Online (Sandbox Code Playgroud)
它目前等于true,因为我认为元组不是空的.那么如何将其提取或转换为布尔值呢?谢谢〜
从一系列TRUE和falses,我想创建一个返回TRUE的函数,无论n1
序列中某处是否存在至少一系列TRUE .这是这个功能:
fun_1 = function(TFvec, n1){
nbT = 0
solution = -1
for (i in 1:length(x)){
if (x[i]){
nbT = nbT + 1
if (nbT == n1){
return(T)
break
}
} else {
nbT = 0
}
}
return (F)
}
Run Code Online (Sandbox Code Playgroud)
测试:
x = c(T,F,T,T,F,F,T,T,T,F,F,T,F,F)
fun_1(x,3) # TRUE
fun_1(x,4) # FALSE
Run Code Online (Sandbox Code Playgroud)
然后,我需要一个返回TRUE的函数,如果在给定的列表中布尔向量,则n1
至少有一系列由至少两个系列(每侧一个)包裹的TRUE n2
.这里的功能:
fun_2 = function(TFvec, n1, n2){
if (n2 == 0){
fun_1(TFvec, n2)
}
nbFB = 0
nbFA = 0
nbT = 0
solution …
Run Code Online (Sandbox Code Playgroud) 在我的Android应用程序中,有两种登录类型。用户可以使用Facebook或Google+登录。用户成功登录后,它将显示该特定社交帐户中的数据。例如,当用户使用Facebook登录时,它将显示来自Facebook的数据。我已经包含了我的代码:
demo.java
boolean isFacebook;
if (!isFacebook) {
txtName.setText(PrefUtils.getCurrentUser(WelcomeScreenActivity.this).firstname);
txtEmail.setText(PrefUtils.getCurrentUser(WelcomeScreenActivity.this).email);
// fetching facebook's profile picture
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... params) {
URL imageURL = null;
try {
imageURL = new URL("https://graph.facebook.com/" + user.facebookID + "/picture?type=small");
} catch (MalformedURLException e) {
e.printStackTrace();
}
try {
bitmap = BitmapFactory.decodeStream(imageURL.openConnection().getInputStream());
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
imgProfile.setImageBitmap(bitmap);
}
}.execute();
} else {
isFacebook = false;
SharedPreferences pref = …
Run Code Online (Sandbox Code Playgroud) int i = 0;
boolean t = true;
boolean f = false, b;
b = (t || ((i++) == 0));
b = (f || ((i+=2) > 0));
System.out.println(i);
Run Code Online (Sandbox Code Playgroud)
执行上述代码后,打印结果为2,而不是3,为什么?
我发现在通过调试执行“ b =(t ||((i ++)== 0))”之后,“ i”是0而不是1。
boolean-logic ×10
boolean ×4
c ×3
algebra ×1
android ×1
c++ ×1
conditional ×1
facebook ×1
if-statement ×1
java ×1
logic ×1
python ×1
python-2.7 ×1
r ×1
readability ×1
search ×1