queryName - the name of a custom query, must match the SQL file name without an extension;
" ASCII_FOR_RAW*(non-greedy) "
означает, что после двойной кавычки принимается произвольное количество ASCII-символов, но до первой встреченной двойной кавычки (не жадно). Без этой приписки принималось бы любое количество ASCII-символов до последней двойной кавычки в строке (жадно). @GeneratedValue(strategy = GenerationType.IDENTITY)
, то есть генерация значений этого поля отдана на откуп базе. А в базе не задана генерация значений.id SERIAL PRIMARY KEY
<?php
function Ct($k, $n) {
$c = 1;
for ($i = $n; $i <= $n + $k - 1; $i += 1) {
$c *= $i;
}
for ($i = 2; $i <= $k; $i += 1) {
$c /= $i;
}
return $c;
}
function combination($k, $n) {
$numbers= [];
$base = 0;
while ($k > 0) {
$total = Ct($k, $n - $base);
$rand = rand(0, $total - 1);
for ($num = 0; $num < $n - $base; $num += 1) {
$prob = Ct($k - 1, $n - $base - $num);
if ($rand < $prob) {
$numbers[] = $num + $base;
$k -= 1;
$base += $num;
break;
}
$rand -= $prob;
}
}
return $numbers;
}
print implode(', ', combination(4, 7)) . "\n";