Sponsored Content
Full Discussion: PI day.
Operating Systems OS X (Apple) PI day. Post 303014677 by wisecracker on Sunday 18th of March 2018 06:45:02 AM
Old 03-18-2018
PI day.

Hi guys and gals...
OSX 10.13.3, default bash terminal calling ksh in the code.
I decided to have a go at creating PI using ksh only as a bit of fun.
I also decided on a Taylor series to do such a task.
This was the fun bit of code that generates PI to 6 decimal places although it could easily be set to continuous running and calculate within the limits of ksh's floating point precision.
It takes around 35 seconds to calculate to six decimal places...
Code:
#!/bin/ksh
# !/usr/local/bin/dash
# PI using the Taylor series.
# PI/4 = 1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11......

clear
OP="-"
BASE=3.0
VAL=1.0
N=1
MYPI=0.0
while true
do
	if [ $(( $N % 2 )) -eq 0 ]
	then
		OP="+"
	fi
	if [ $(( $N % 2 )) -gt 0 ]
	then
		OP="-"
	fi
	VAL=$(( ($VAL * 1.0) $OP (1.0 / $BASE) ))
	BASE=$(( $BASE + 2.0 ))
	N=$(( $N + 1 ))
	MYPI=$(( $VAL * 4.0 ))
	# Hard coded known value to exit loop without interaction.
	if [ "${MYPI:0:8}" == "3.141592" ]
	then
		break
	fi
done
printf "PI to six decimal places = %.6f...\nIterations = $N...\n" "$MYPI"

Result:
Code:
PI to six decimal places = 3.141592...
Iterations = 1530012...
AMIGA:amiga~/Desktop/Code/Shell> _

Enjoy and hope to see other solutions on this thread...

Last edited by wisecracker; 03-18-2018 at 07:54 AM..
 

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to compare prev day file to current day file

Hi all: I am new to this board and UNIX programming so please forgive if I don't explain something correctly. I am trying to write a script to keep track of our links, we link one program written for Client A to Client B's directory. What we want to do is to keep track of our linked programs... (1 Reply)
Discussion started by: Smurtzy
1 Replies

2. Shell Programming and Scripting

Write a shell script to find whether the first day of the month is a working day

Hi , I am relatively new to unix... Can u pls help me out to find out if the first day of the month is a working day ie from (Monday to Friday)...using Date and If clause in Korn shell.. This is very urgent. Thanks for ur help... (7 Replies)
Discussion started by: phani
7 Replies

3. Solaris

/var size is increasing day by day

Hi experts, I am facing a big problem. i use solaris 9. i found size of /var is increasing day by. snapshot of a yester moring- /dev/vx/dsk/var 15G 14G 1.1G 94% /var snapshot of a yesterday everning- /dev/vx/dsk/var 15G 14G 824M 95% /var I am... (11 Replies)
Discussion started by: thepurple
11 Replies

4. Shell Programming and Scripting

Script to find previous month last day minus one day timestamp

Hi All, I need to find the previous month last day minus one day, using shell script. Can you guys help me to do this. My Requirment is as below: Input for me will be 2000909(YYYYMM) I need the previous months last day minus 1 day timestamp. That is i need 2000908 months last day minus ... (3 Replies)
Discussion started by: girish.raos
3 Replies

5. Solaris

May i know the day to day activities of a Solaris system administrator?

Recently i have attended a telephonic interview. As i dont have work experience in solaris i was not able to deliver correct answer for this question. Your answer will help for the people like me who is looking to become Solaris System administrator. (4 Replies)
Discussion started by: Sesha
4 Replies

6. Shell Programming and Scripting

Code creates day 32 instead of 1st day of next month.

I am using the code below modified from a post I saw here regarding having the script write out future dates. The problem is that instead of making 8/1 it makes 7/32! Please help! yy=`date +%Y` mm=`date +%m` dd=`date +%d` echo "Today is : $yy $mm $dd" #!/usr/bin/ksh date '+%m... (5 Replies)
Discussion started by: libertyforall
5 Replies

7. Shell Programming and Scripting

Script to check if last modified day is previous day

Hi, I would like to write a script that checks if a file ('counter') was modified the previous day, if so erase its contents and write 00000000 into it. For e.g. if the file 'counter' was last modified at 11.30pm on 24th May and the script runs at 12.15am of 25th May, it should erase it's... (1 Reply)
Discussion started by: hegdepras
1 Replies

8. UNIX for Dummies Questions & Answers

Move the files between Current day & a previous day

Hi All, I have a requirement where I need to first capture the current day & move all the files from a particular directory based on a previous day. i.e move all the files from one directory to another based on current day & a previous day. Here is what I am trying, but it gives me errors.... (2 Replies)
Discussion started by: dsfreddie
2 Replies

9. Shell Programming and Scripting

Julian day to dates in YEAR-MONTH-DAY

hello, I have many files called day001, day002, day003 and I want to rename them by day20070101, day20070102, etc. I need to do it for several years and leap years as well. What is the best way to do it ? Thank you. (1 Reply)
Discussion started by: Ggg
1 Replies
convuser(8)						      System Manager's Manual						       convuser(8)

NAME
convuser - convert user profile information between BASE and ENHANCED formats SYNOPSIS
/usr/tcb/bin/convuser -a [-c] [-i] [-n] [-u] [-R] [-U uid] [-M] [-T template] [-[qv]] [users] /usr/tcb/bin/convuser -b [-T template] [-[qv]] [users] /usr/tcb/bin/convuser -d [-n] [-M] [-[qv]] [users] /usr/tcb/bin/convuser -H FLAGS
-a Converts from BASE to ENHANCED authentication format. This option is incompatible with the -b and -d options. If none of -a, -b, or -d have been supplied, then -a is implied by any of -c, -i, -n, -u, -R, or -U. -b Converts from ENHANCED to BASE authentication format. This option is incompatible with the -a and -d options. The conversion in this case is bring any compatible passwords from the extended profile back to the BASE profile. -c Causes the conversion for -a to create new extended profiles only. If the -c option is given, existing extended profiles will remain unchanged. -d Removes any extended profiles which do not still have corresponding BASE profiles. -i Cause the conversion for -a to invalidate the encrypted password field in the BASE profile if the change to the ENHANCED profile is successful. -n Cause the -a and -d conversions to include NIS passwd.byname map entries in the list of BASE profiles for consideration. -q Cause non-error output to be suppressed. -u Cause the -a conversion to leave the migrated passwords still usable. The default is to pre-expire them. -v Cause more verbose reports of progress to be given. -M Work on NIS master map files rather than the local profiles. This option works on NIS master hosts only. -R Cause newly-created extended profiles to be written only to the /tcb/files directory tree (v4 only). -T template Causes the creation of new extended profiles to use user template as the template for the account default values. Causes the con- version for -b to consider only accounts with template as the associated account template. -U uid Causes newly-crated extended profiles with UID values less than uid to be written to the /tcb/files directory tree (v4 only). -H Cause an extended usage message to be given and no other processing to be performed. DESCRIPTION
The convuser utility is used to provide migration between BASE and ENHANCED security levels, as well as to provide support for the use of existing account-creation scripts. The most common uses are to clean up dangling extended profiles (those without corresponding BASE pro- files) after the removal of the base profiles, and to create new extended profiles to correspond to newly added base profiles. EXAMPLES
To remove dangling profiles: # convuser -d # convuser -Md To finish the addition of new accounts on a system using NIS to supply the extended profile information: # convuser -iu # convuser -Miu To finish the addition of new accounts on a system using NIS to supply the extended profile information: # convuser -iun RELATED INFORMATION
Files: prpasswd(4), authcap(4) Security delim off convuser(8)
All times are GMT -4. The time now is 02:23 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy