python — Как рассчитать абсолютное значение в z3 или z3py
спросил
Изменено 8 лет, 11 месяцев назад
Просмотрено 4к раз
Я пытался решить небольшую задачу, которая включает в себя абсолютное значение некоторых терминов. В z3 нет поддержки функции abs(). В питоне есть, но в конце концов я должен передать его z3py. Есть ли способ, с помощью которого я могу передать термины с абсолютным оператором в z3 из python или есть ли другой способ? Ниже приведен код для небольшого примера.
` х = Целое('х') у = Int('у') х = абс (2-у) s=Решатель() с.добавить(х>0) с.добавить(у>0) s.проверить() м=s.модель() распечатать м`
Ответ должен быть y=1, что и происходит, когда вы удаляете abs(). Есть ли способ решить эту проблему с помощью функции абсолютного значения? абс ().
- питон
- z3
- симпи
- z3py
1
Вот один из подходов:
x = Int('x') у = Int('у') деф абс(х): возврат Если (х >= 0,х,-х) s=Решатель() s.add (x == абс (y-2)) с.добавить(х>0) с.добавить(у>0) s.проверить() м=s.модель() распечатать м
Вы можете преобразовать свою проблему, чтобы вам не нужно было abs
.
В вашей конкретной задаче ‘x = abs(2-y), x > 0’, значит, ‘abs(2-y) > 0’. Абсолютное значение не может быть отрицательным, и вы оставили только y != 2.
Таким образом, вы можете удалить определение x и ограничения, связанные с x, и просто добавить ‘y != 2’ — у вас будет эквивалентная проблема.
Если вам нужно значение x, просто получите его из значения y позже в Python.
1
Идея абсолютного значения очень проста. Вы хотите узнать расстояние от нуля. Один из способов сделать это — поменять знак всех отрицательных терминов.
, если х<0: х=-х
Зарегистрируйтесь или войдите
Зарегистрироваться через Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя электронную почту и пароль
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Опубликовать как гость
Требуется, но не отображается
powershell - Могу ли я копировать файлы в сетевое окружение из скрипта или командной строки?
спросил
Изменено 2 года, 7 месяцев назад
Просмотрено 58 тысяч раз
Возможно ли в Windows XP копировать файлы в сетевое окружение из командной строки, пакетного файла или, что еще лучше, сценария PowerShell?
На этот путь исследований меня направила попытка опубликовать файлы в библиотеке документов WSS 3. 0 с компьютера пользователя. Я не могу сопоставить диск с рассматриваемой библиотекой, потому что сайт WSS доступен только для аутентификации через NTLM на порту, отличном от 80 или 443. Я полагаю, что мог бы поочередно использовать веб-службы WSS для отправки файлов, но я Мне очень интересно узнать ответ на этот вопрос сейчас.
- powershell
- сценарии
- командная строка
- мох
- wss
1
Используя пакетный файл, вы можете войти в ресурс и скопировать файл:
Пакетный файл будет содержать следующее:
net use \\{dest-machine}\{destfolder} {password} /user :{имя пользователя} скопировать {файл} \\{целевая машина}\{целевая папка}
напр.
net use \\Development\myfolder mypassword /user:Administrator скопировать newfile.c \\development\myfolder
Если вы имеете в виду окно Windows
, просто используйте xcopy
.
xcopy
.xcopy src \\ целевая машина \ имя общей библиотеки \ целевая xcopy \\src-machine\shared-library-name\dest src
Powershell использует абстракцию поставщиков для обеспечения общего интерфейса с хранилищами данных. Кажется, что они связаны с нарицательным «Item», поэтому вы можете получить полный список с man *item*
. Если вы знаете другой способ копирования и иной работы с данными из хранилища, вы также можете использовать его, но использование командлетов обеспечивает лучший подход «изучай один раз, используй часто». В вашем случае вы могли бы:
Копировать-элемент test.txt-Destination \\dest-machine\share
Copy-item также поддерживает параметр -Credential, если он вам нужен.
1
«Network Places» на самом деле не имеет API, это просто набор ярлыков, а общий ресурс SharePoint использует расширение оболочки, если я правильно помню.
Все это говорит о том, что для доступа к Sharepoint как к файловой системе из PowerShell также требуется расширение SharePoint Provider.
вы можете использовать команды 'net' для аутентификации и последующего копирования файлов.
копия src \\dest-machine\shared-library-name\dest
Я не на самом деле точно знаю, как обрабатывать аутентификацию, если это необходимо.
Из того, что я вижу, кажется, что невозможно напрямую получить доступ к сетевому месту или управлять им из командной строки, будь то в PowerShell или в обычной командной строке.
@slipsec (#13899):
Спасибо за предложение, но PowerShell не поддерживает номер порта в пути назначения больше, чем команда net use
делает.
Так что лучшее, что я могу сделать в моей конкретной ситуации, это стиснуть зубы и купить что-то вроде WebDrive, чтобы включить сопоставление дисков через WebDAV на нестандартных портах, или выполнить какую-то другую настройку (например, отдельное веб-приложение с другим IP-адресом).