问题描述
<?PHP
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Builder;
class Iscrizione extends Model
{
use HasFactory;
protected $hidden = ['idCorso','idUtente'];
protected $table = 'iscrizione';
protected function setKeysForSaveQuery(Builder $query){
return $query->where('idCorso',$this->getAttribute('idCorso'))
->where('idUtente',$this->getAttribute('idUtente'));
}
}
其中谓词 isPrime(N) 检查一个数是否为素数,并相应地返回真或假。 但是,根据我的逻辑,我总是将错误作为输出。问题出在哪儿??我对 prolog 编程很陌生,所以我有点挣扎。
如果需要进一步说明,请在下方发表评论。
解决方法
我认为,你不应该从素数分解开始学习 Prolog,因为你的代码并不表明你对这个问题有一个清晰的认识。我很难解释你的代码背后的意图/想法。
我建议从选择一个你已经理解的问题开始学习序言。
然后也许开始考虑适合您的解决方案的谓词应该是什么样子。
在素数分解的情况下,可能是
prime_factors(N,List)
,如果 N
是一个数字并且 List
是它的所有质因数的列表,那么它应该是可证明的。
或者它可能是
prime_factor(N,F)
,如果 N
是一个数字并且 F
是它的主要因数之一,那么它应该是可证明的。
换句话说:你想问序言系统什么问题?