Я разработал небольшой сценарий для моделирования гипотезы Сиракуз в Powershell.Манипулирование большим числом в Powershell
Я использую его с очень большим числом и я учусь результат в графике Excel, но сохраняет форматирование PowerShell мой номер, когда они слишком велики:
Это результат я получаю для итераций Firsts
1.60827282342995E+40
8.04136411714975E+39
4.02068205857487E+39
2.01034102928744E+39
1.00517051464372E+39
5.02585257321859E+38
Я хотел бы иметь результат без форматирования «E + XX», есть ли способ, чтобы войти весь номер для анализа его состава?
EDIT: Сценарий я написал:
Remove-Item "E:\syracuse.txt"
$Logfile = "E:\syracuse.txt"
Function LogWrite
{
Param ([string]$logstring)
Add-content $Logfile -value $logstring
}
$chiffre1 = 0
$chiffre2 = 0
$chiffre1 = read-host "chiffre"
write-host Sequence Initiale $chiffre1
$val = 0
while ($val -ne 32132135464664546546545645656454665412321321231321654657987465432132154)
{
$val++
if ([bool]!($chiffre1%2))
{
Write-Host "Pair"
$chiffre2=($chiffre1)/2
write-host $chiffre2
LogWrite $chiffre2,$val
}
Else
{
Write-Host "Impair"
$chiffre2 = $chiffre1*3+1
write-host $chiffre2
LogWrite $chiffre2,$val
}
if ([bool]!($chiffre2%2))
{
Write-Host "Pair"
$chiffre1=($chiffre2)/2
write-host $chiffre1
LogWrite $chiffre1,$val
}
Else
{
Write-Host "Impair"
$chiffre1 = $chiffre2*3+1
write-host $chiffre1
LogWrite $chiffre1,$val
}
}
$ Вэл имеет произвольное значение
У меня есть Powershell 2,0 только, я хочу обновить до Powershell v3 прямо сейчас.
Edit2: Это очень странно сейчас. В ISE скрипт не работает, число нечетное каждый раз.
Я думаю, мне удалось найти небольшое решение с помощью bigInt По какой-то причине он не работает на ISE, но работает на Powershell v3 cmd.
Я изменил мою LogWrite линию:
LogWrite ([bigint]$chiffre1),$val
или
LogWrite ([bigint]$chiffre2),$val
Мой журнал теперь имеет хорошее форматирование!
Можете ли вы показать нам скрипт? –
@PetSerAl Гипотеза Сиракуз включает в себя только целые числа. Тем не менее, 64 бита не будут делать. 'System.Numerics.BigInteger' может быть опцией –
@ MathiasR.Jessen Учитывая форматирование, OP определенно использует' System.Double', который не может хранить значение «18014398509481985». – PetSerAl