Обращение с запросами CORS должным образом является более привлекательным. Вот функция, которая будет реагировать более полно (и правильно).
/**
* An example CORS-compliant method. It will allow any GET, POST, or OPTIONS requests from any
* origin.
*
* In a production environment, you probably want to be more restrictive, but this gives you
* the general idea of what is involved. For the nitty-gritty low-down, read:
*
* - https://developer.mozilla.org/en/HTTP_access_control
* - http://www.w3.org/TR/cors/
*
*/
function cors() {
// Allow from any origin
if (isset($_SERVER['HTTP_ORIGIN'])) {
// Decide if the origin in $_SERVER['HTTP_ORIGIN'] is one
// you want to allow, and if so:
header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");
header('Access-Control-Allow-Credentials: true');
header('Access-Control-Max-Age: 86400'); // cache for 1 day
}
// Access-Control headers are received during OPTIONS requests
if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']))
// may also be using PUT, PATCH, HEAD etc
header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))
header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");
exit(0);
}
echo "You have CORS!";
}
Отвечает в комментариях Engineero.
Удаление начальных и конечных 0 - это то же самое, что сказать, что нужно начинать и заканчивать 1. Для этого возьмите перестановку с N-2 и затем закрепите 1 на концах.
Спасибо!
РЕД. привести к удовлетворительному ответу.
Я создал итеративное приложение. Мое последнее приложение - cpp, но я сделал быстрый прототип на python в качестве доказательства концепции. Заметьте, что в приложении cpp вместо добавления в мой список я буду вызывать отдельную функцию, которая использует перестановку. Не стесняйтесь критиковать, чтобы сделать его более эффективным.
import copy
aList = []
def initA(sz=10):
return [1]+[0]*(sz-2)+[1];
def iterA(buff,level,ix):
if (level >0):
for i in range (level,ix):
a=copy.deepcopy(buff)
a[i] = 1;
if level ==1:
aList.append(a)
iterA(a,level-1,i);
N=6;
K=10;
for i in range (N-2,K):
a=initA(i+1)
a = iterA(a,N-2,i)
print (aList);