我该如何简化此更新说明?每当客户购买商品时,它将使用1更新销售.
$this->db->query('SELECT amount FROM shop_items WHERE itemid='.$itemid.'');
$new_amount = $item->amount+1;
if(!$this->db->query('UPDATE shop_items SET amount='.$new_amount.' WHERE itemid='.$itemid.'')):
return false;
endif;
Run Code Online (Sandbox Code Playgroud)
我不能让它更简单,所以有更少的线,例如:
if(!$this->db->query('UPDATE shop_items SET amount=_current_value_+1 WHERE itemid='.$itemid.'')):
return false;
endif;
Run Code Online (Sandbox Code Playgroud)
这可能吗?如果不是,谢谢
我在mathematica中有一些简化某些功能的问题.在我编写的程序中,我有一些用Sum函数计算的函数,许多术语最终都乘以零.我想要打印但简化的功能.我尝试使用FullSimplify,但它需要永远运行.然后我尝试使用Simplify,但它不起作用.这是我得到的一个函数的例子,
2. Sqrt[-(-1+x) x]+
0. Sin[2 ArcCos[-1+2 x]]+
0. Sin[3 ArcCos[-1+2 x]]+
0. Sin[4 ArcCos[-1+2 x]]+
0. Sin[5 ArcCos[-1+2 x]]+
0. Sin[6 ArcCos[-1+2 x]]+
0. Sin[7 ArcCos[-1+2 x]]+
0. Sin[8 ArcCos[-1+2 x]]+
0. Sin[9 ArcCos[-1+2 x]]+
0. Sin[10 ArcCos[-1+2 x]]+
0. Sin[11 ArcCos[-1+2 x]]+
0. Sin[12 ArcCos[-1+2 x]]+
0. Sin[13 ArcCos[-1+2 x]]+
0. Sin[14 ArcCos[-1+2 x]]+
0. Sin[15 ArcCos[-1+2 x]]+
0. Sin[16 ArcCos[-1+2 x]]+
0. Sin[17 ArcCos[-1+2 x]]+
0. Sin[18 ArcCos[-1+2 x]]+
0. Sin[19 ArcCos[-1+2 x]]+
0. Sin[20 ArcCos[-1+2 x]]+ …Run Code Online (Sandbox Code Playgroud) 我的代码中有以下构造:
f :: Maybe A -> X
f a = case a of
Nothing -> x
(Just b) -> case b of
Nothing -> y
(Just c) -> case c of
Nothing -> z
(Just d) -> d
Run Code Online (Sandbox Code Playgroud)
我没有看到一种明显的方法来简化这个而不是使用嵌套maybe函数,这不会使整个事情看起来更好.是否有任何聪明 - 但仍然可以理解 - 的技巧有助于使这个结构更"优雅"?
当我在Ruby中编写方法时,我常常想"我敢打赌这可以做得更简单".这是一个示例方法.它会添加从1开始的所有数字,直到数字为止n.有没有办法放弃变量solution?
def sum n
solution = 0
for i in 1..n do
solution += i
end
solution
end
Run Code Online (Sandbox Code Playgroud) 我想简化我的T-SQL查询.它是这样的:
SELECT
t.a AS [Column A],
t.b AS [Column B],
t.c AS [Column C],
(t.a - t.b - t.c) AS [Column D],
CASE
WHEN (t.a - t.b - t.c) = 0 THEN 'Equals'
WHEN (t.a - t.b - t.c) > 0 THEN 'Greater'
WHEN (t.a - t.b - t.c) < 0 THEN 'Less'
END AS [Status]
FROM
Table1 AS t;
Run Code Online (Sandbox Code Playgroud)
放入(t.a - t.b - t.c)变量会很好,所以我可以在它出现的所有地方重复使用它,因为表达式可能会随着时间的推移而改变.如果不显着改变现有查询,我无法弄清楚如何做到这一点.
在C ++课程中,我学会了一些技巧,例如避免重复计算,使用更多的加法而不是更多的乘法,避免幂等以提高性能。但是,当我尝试使用Julia-Lang优化代码时,我对相反的结果感到惊讶。
例如,以下是一些未进行数学优化的方程式(所有代码都是用Julia 1.1编写的,不是JuliaPro编写的):
function OriginalFunction( a,b,c,d,E )
# Oprations' count:
# sqrt: 4
# ^: 14
# * : 14
# / : 10
# +: 20
# -: 6
# = : 0+4
x1 = (1/(1+c^2))*(-c*d+a+c*b-sqrt(E))
y1 = d-(c^2*d)/(1+c^2)+(c*a)/(1+c^2)+(c^2*b)/(1+c^2)-(c*sqrt(E))/(1+c^2)
x2 = (1/(1+c^2))*(-c*d+a+c*b+sqrt(E))
y2 = d-(c^2*d)/(1+c^2)+(c*a)/(1+c^2)+(c^2*b)/(1+c^2)+(c*sqrt(E))/(1+c^2)
return [ [x1;y1] [x2;y2] ]
end
Run Code Online (Sandbox Code Playgroud)
我用一些技巧优化了它们,包括:
(a*b + a*c) -> a*(b+c)
因为加法比乘法快。a^2 -> a*a
避免电源操作。x = a * (1+c^2); y = b * (1+c^2)
->
temp = 1+c^2
x …Run Code Online (Sandbox Code Playgroud) 我编写了一个函数,用于根据requestparams从数据库中获取信息。以下if-else语句是一个巨大的问题。如果我们继续添加更多过滤器,则需要继续为所有可能的路径添加语句。
fun getMessages(name: String, pageable: Pageable, locale: String?, subject: String?,
recipient: String?): Page<MessageDTO>? {
val messagePageable= if (!locale.isNullOrEmpty() && !subject.isNullOrEmpty() && !recipient.isNullOrEmpty()) {
messageRepository.findAll(where(hasMessageName(name).and(hasLocale(locale!!)
.and(hasSubject(subject!!).and(hasRecipient(recipient!!))))), pageable)
} else if (!locale.isNullOrEmpty()) {
messageRepository.findAll(where(hasMessageName(name).and(hasLocale(locale!!))), pageable)
} else if (!subject.isNullOrEmpty()) {
messageRepository.findAll(where(hasMessageName(name).and(hasSubject(subject!!))), pageable)
} else {
messageRepository.findAll(where(hasMessageName(name)), pageable)
}
return messagePageable.map { messageMapper.toMessageDTO(it) }.takeIf { it.content.isNotEmpty() }
}
Run Code Online (Sandbox Code Playgroud)
应该有一个更好的书面方式。我感谢您的帮助。
我有一个基本上从双向量中读取值的函数,将它们附加到一个字符串(同时确保每个字符串之间的空间并设置它们的精度)并返回最终结果,减去最后的空格:
std::string MultiplePrintProperties::GetHpitchString()
{
std::string str;
vector< double >::iterator it;
for ( it = Vals.begin();
it != Vals.end();
it++ )
{
ostringstream s;
// Set precision to 3 digits after the decimal point
// and read into the string
boost::format fmt( "%.3f " );
s << fmt % *( it );
str.append( s.str() );
}
// Remove last white space and return string
return str.substr( 0, str.length() - 1 );
}
Run Code Online (Sandbox Code Playgroud)
我想知道这段代码是否可以以任何方式简化.我最近一直在调查for_each和functor的使用,但是我们无法弄清楚这些技术如何改进这个特定的例子.
Sympy似乎无法简化涉及变量的平方的平方根的表达式:
In [28]: a = x**2
In [29]: b = a**(1/2)
In [30]: b
Out[30]:
0.5
? 2?
?x ?
In [31]: b.simplify()
Out[31]:
0.5
? 2?
?x ?
Run Code Online (Sandbox Code Playgroud)
我不认为这与其他变体有关simplify,特别是我认为b.powsimp()应该有效.
In [32]: b.powsimp()
Out[32]:
0.5
? 2?
?x ?
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么这不起作用,或者我做错了什么?
我知道这是一个广泛的问题,但我仍然是新手,不知道要搜索/询问什么。
我有一个 Jeopardy 游戏的 JavaScript 系列。我相信有更好的方法来做到这一点,因为有太多的重复。我正在考虑一些变量、数组和/或在调用函数时传递 ID 但不知道从哪里开始的事情。任何想法,将不胜感激。我不是要求任何人做这项工作,只是给我一些想法和例子来说明要往哪个方向发展。
var score = 0;
//Disable the question button
function disableButton(btnID){
document.getElementById(btnID.id).disabled = true;
}
//Show current score
function endQuestion(){
alert ("Your total score is now " +score);
}
//Toggle Images On
function showImgBtn1(){
document.getElementById('btn1pic').style.visibility = 'visible';
setTimeout(askQuestion1,3000);
}
function showImgBtn2(){
document.getElementById('btn2pic').style.visibility = 'visible';
setTimeout(askQuestion2,3000);
}
//This keeps going for every question--repeated 9 to 20 times
//Questions
function askQuestion1()
{
var answer = prompt ("What body system contains the heart, blood, arteries, and …Run Code Online (Sandbox Code Playgroud)