PowerShell, 420 ไบต์ (ayyyyyyyy) 378 ไบต์
param($n);[int[]]$p="03141592653589793238462643383279502884197169399375"-Split'';$a=@(0,3,4);for($i=3;$i-lt50;$i++){$a+=$a[$i-1]+$a[$i-2]};$c=[char[]]"00001010111010111010111011111010111110111010111011111011111010111110111";$b=@(0);for($i=4;$i-le70;$i++){if($c[$i]-eq'1'){$b+=$i}};[double]$r=$a[$n]/$b[$n];$q=$p[$n+1];$s="";(0..($q-1))|%{$s+="0"};([math]::Round($r,$q,[MidpointRounding]::AwayFromZero)).ToString("0.$s")
ขอบคุณisaacgสำหรับการบันทึก 41 ไบต์สำหรับการคำนวณว่าคำถามจะปัดเศษอย่างไร หมายความว่าฉันไม่ได้มีการรวมที่น่ากลัวและไม่จำเป็นต้องโยนเป็นอย่างชัดเจน[MidpointRounding]::AwayFromZero
[double]
อันนี้สนุกมาก!
ขยาย:
# Take input N
param($n)
# First digits of pi, stored as integer array
[int[]]$p="03141592653589793238462643383279502884197169399375"-Split''
# Fibonacci sequence A(N)
$a=@(0,3,4)
for($i=3;$i-lt50;$i++){
$a+=$a[$i-1]+$a[$i-2]
}
# Zero-indexed bitmask for if the n-th integer is composite (1) or not (0)
$c=[char[]]"00001010111010111010111011111010111110111010111011111011111010111110111"
# Populate B(N) as an array using the $c mask
$b=@(0)
for($i=4;$i-le70;$i++){
if($c[$i]-eq'1'){
$b+=$i
}
}
# Calculation Time!
$r=(a($n))/$b[$n]
# A small golf, as $p[$n+1] gets used a couple times
$q=$p[$n+1]
# Need to generate a string of zeroes for padding
$s=""
(0..($q-1))|%{$s+="0"}
# Round the number, then send it to a string so we get the necessary number of zeroes
([math]::Round($r,$q)).ToString("0.$s")
การเรียกใช้ซ้ำใน PowerShell คือ ... เราจะพูดช้าดังนั้นเราต้องสร้างA(N)
ทิศทางอื่นและเก็บไว้ในอาร์เรย์จากนั้นทำดัชนี
OLD
นอกจากนี้โคศักดิ์สิทธิ์ยังมีข้อกำหนดด้านผลผลิตที่จะกำจัดสิ่งนี้ ค่าเริ่มต้น PowerShell การปัดเศษเพื่อที่ใกล้ที่สุด k / ที่ / การปัดเศษของนายธนาคารซึ่งความจำเป็นการใช้เป็นพิเศษอย่างละเอียด[MidpointRounding]::AwayFromZero
ที่จะเปลี่ยนรูปแบบการปัดเศษ ยิ่งไปกว่านั้นเราจำเป็นต้องใส่เลขศูนย์ต่อท้ายหากมี ข้อกำหนดทั้งสองนั้นรวมกันเพื่อเปลี่ยนคู่สุดท้ายของบรรทัดจาก20 ไบต์ [math]::Round($r,$q)
เป็น102 ไบต์ (จาก$s=""
ถึง+$s)
) ... ว้าว
C(n)
ตัวเลขเราต้องรวม 0 ต่อท้ายหรือไม่