App-denomfind
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
bin/denomfind view on Meta::CPAN
#!/usr/bin/perl
#
# denomfind
# å°æ°ãããã¤ãä¸ããããããããã¯ã©ããª(å
±éãã)åæ¯ã®åæ°ã§ããããæ¨å®ãã
# -- developed by ä¸éå¯¿ä¹ Toshiyuki Shimono in Tokyo, Japan,
# -- first developed probably on 2016-06-20
# -- one debugging on -% and -c on 2022-10-11
# -- heavy implementation added on 2022-10-12, 10-13.
#
use 5.024 ; use strict ; use warnings ; # s/ã®r修飾å㯠v5.14ãè¦æ±
use Getopt::Std ; getopts 'a:cD:fg:IL:M:QT:y:%2:5:' , \my%o ;
use POSIX qw[ ceil floor ] ;
use Term::ANSIColor qw[ :constants color ] ; $Term::ANSIColor::AUTORESET = 1 ;
use Math::BigInt qw[ bgcd ] ; # -Qã®æå®æã«å¿
è¦ã¨ãªãã
use List::Util qw [ reduce min max ] ;
use FindBin qw[ $Script ] ;
my $mpu ; # Math::Prime::Util ã®ã¢ã¸ã¥ã¼ã«ãã¤ã³ã¹ãã¼ã«ããã¦ãããç¹æ¤ã
CHECK {$mpu = eval 'use Math::Prime::Util qw[ factor factor_exp ]; 1 ' || 0 } # ä»ã«BEGIN INIT UNITCHECK ã使ããã
& test if exists $o{T} ;
HELP_MESSAGE () unless @ARGV ;
### ãã¹ããã¿ã¼ã³
sub test () {
my $cmd ;
do {
no warnings qw [experimental::smartmatch];
$cmd = "$0 -D0 -M0 -y-2.. -52 -Q -% 4.76 3.94 3.50 26.37 3.58 2.72" when '1' ;
$cmd = "$0 -g8 -D-6%% -a5e-5 -y, 3.14159265358979323" when '2' ;
$cmd = "$0 -y0,3,4,5 -g290,20 -I -% 2.0 50.7 13.5 21.6 6.8" when '3' ;
# âã¯ã¯ãã³1åç®ã®ä¾. æ´æ°ã®ååãè¦ã¤ãããã®ãè¤æ°ããåæ¯ãåºåãé
ä»è³æã«253ã¨æ¸ããã¦ãããããã®æ°ããããåºåã
# åæ¨äºå
¥ã2åè¡ã£ã¦ãæä¸ä½ã1æ¡ãã¤ç¸®ããå ´åãæ³å®ãã¦ãããå¾ã£ã¦ã誤差ã表示ããã¨ãæ大ã®ããã¯0.05%ã§ãªã0.055%ã
$cmd = "$0 -y1.. -g230,50 -D-3% -Q -52 -% 48.2 26.9 23.1 21.6 20.0 12.2 6.7 5.9 2.4" when 'v1' ;
# âã¯ã¯ãã³2åç®ã®ä¾. æ´æ°ã®ååãè¦ã¤ãããªããã®ã3å以ä¸ã®åæ¯ãåºåãé
ä»è³æã®250ã¨ããæ°ãæ£ãããã§ããã¨åããã
$cmd = "$0 -y-3.. -g50 -D0 -Q -% 65.2 45.6 35.6 30.8 29.6 26.4 14.8 7.2 5.6 4.8 4.4" when 'v2' ;
# âã¯ã¯ãã³3åç®ã®ä¾. æ´æ°ã®ååãè¦ã¤ãããã®ãè¤æ°ããåæ¯ãåºåãé
ä»è³æã«åæ¯97ã¨ããã96ã3åæ··ãã£ãã¨ãèããããã
$cmd = "$0 -y2.. -D0 -Q -% 81.4 63.3 54.6 51.0 46.9 45.9 28.6 17.3 13.3 11.3 10.3" when 'v3' ;
# â ãã³ãã¤ã®ãå¹´çã®2018å¹´ã®èª¿æ»ã§ãå°å¦çãä¸å¦çãç·åã女åã®å ´å
$cmd = "$0 -y, -52 -g5 -D-3% -Q -% 39.9 30.4 29.5 18.0 17.2" when 'o1' ;
$cmd = "$0 -y, -52 -g5 -D-3% -Q -% 33.7 31.8 23.5 22.7 22.0" when 'o2' ;
$cmd = "$0 -y, -52 -g5 -D-3% -Q -% 37.5 36.2 27.3 18.8 18.5" when 'o3' ;
$cmd = "$0 -y, -52 -g5 -D-3% -Q -% 39.4 35.7 21.5 20.7 18.4" when 'o4' ;
## â https://www.nexer.co.jp ã表示ããè
ãéå¶ãããµã¤ãã®ãã¼ã¸ããã
# â https://trend-research.jp/3038/ ã®ãã©ã®ãããã®é »åº¦ã§..?ã
$cmd = "$0 -% 0.7 1.8 5.5 7.7 18.4 12.9 21.3 8.5 23.2" when 'n1' ;
# â https://prtimes.jp/main/html/rd/p/000000231.000087626.html æã
ãããã¾ã§ãªã?
$cmd = "$0 -D-2%,----------- -y-1.. -a0.07% -% 11.2 29.3 28.2 11.6 9.7 10.1" when 'n2' ;
$cmd = "$0 -g259,1 -a0.194% -D-3% -% 16.9 23.9 31.0 9.9 2.8 5.6" when 'n3' ; # -a ã§ååããªãã¨ãæ¢ç´¢ãã¦ããã
# ããããã¯èªåã§ç¨æããã¹ã©ã¤ãã«é¢ãã¦ã
$cmd = "$0 -y0.. -D5 -Q -g141,20 -% 2.0 13.5 21.6 6.8" when 's18' ;
$cmd = "$0 -y-1.. -D5 -52 -g20 -% 2.0 50.7 13.5 21.6 6.8" when 's19' ;
$cmd = "$0 -y-1.. -I -g20 -% 2.0 50.7 13.5 21.6 6.8" when 's20' ;
$cmd = "$0 -D5 -I -Q -g150,-inf -% 2.0 13.5 21.6" when 's21' ;
$cmd = "$0 -y1.. -g75,20 -D0,----- -Q -% 81.4 63.3 54.6 51.0 46.9 45.9 28.6 17.3 13.3 11.3 10.3" when 's24' ;
# æ©è½è¿½å ã«åããã¦ãã¹ããã¿ã¼ã³
$cmd = "$0 -M0 -D9 33.3% 50.0% 57.1%" when 'D9' ; # -% 以å¤ã«%ãç´æ¥æ°å¤ã«ä»ãããã¨ãå¯è½ã¨ããã%ãã&ã¸ã®èª¤åã«æ³¨æã
$cmd = "$0 -y, -L1 -% 3.2 59.0 17.5 20.3" when 'L1' ; # -L ã®å®è£
ã®ä¼´ããã¹ã
} for $o{T} ;
say STDERR BOLD ITALIC YELLOW " >> " , $cmd ;
system $cmd ;
exit ; # system㧠exit ããã¯ãã ããéãã³ã¼ããå¢ãããã¨ãèããããã« exitã¨æ¸ããã
}
### ãã¹ã以å¤ã¯ããããéå§
$o{D} =~ s/,(.*)$// if exists $o{D};
my $Demp = $1 if defined $1 ; # // '-' ;
$o{D} //= 0 unless grep { m/[DIQ]/ } keys %o ;
$o{g} //= 12 ; # åå¾ããåæ¯ã®åæ°ã®æå¤§å¤ ãªããã³ã³ãåºåãã§ãåå¾åæ¯ã®éå§å¤(æå°å¤)ãæå®å¯è½ã
$o{a} =~ s/(^.*)%$/"$1"*"0.01"/e if exists $o{a} && $o{a} =~ /%$/ ; # -a ã®æå®ã % ã§çµããå ´åã®å¦ç
$o{y} //= '1..' ; # ä½ãåè£ãããã°è¡¨ç¤ºã¨ããã
do { pipe *STDIN , my $WH ; print {$WH} join "\n" , splice @ARGV , 0 } ;
my @nums = & readNums ; # $q ã¯ã-y ã®ãªãã·ã§ã³ã®ãã©ã¡ã¼ã¿ã§evalããéã«ãè£æçã«ä½¿ããã¨ãæå³ãã¦ããã
my $q = @nums ;
# ããã¯ãåãå¼æ°ã§åãé¢æ°ã2å(以ä¸)å¼ã³åºãã¨ããæå³ã§ãä¸å¹çã§åé·ã¨ãè¨ãããå¾ã§æ´çã..
my @ddg = map { & decDig ($_ ) } @nums ; # ä¸ããããå²åè¿ä¼¼å¤ãããããããå°æ°ç¹ä»¥ä¸ä½æ¡ã§ããã? dig digit
view all matches for this distributionview release on metacpan - search on metacpan
( run in 0.931 second using v1.00-cache-2.02-grep-82fe00e-cpan-c30982ac1bc3 )