プログラミングのお題スレ Part22
>>43 typo orz -h または --highres ↓ -h または --highreso >>43 これだと、scriptを実行するたびに全てのjpegファイルをtemporaryディレクトリにdownloadするためサーバの負荷の面で行儀がよくないので、 ディレクリは TyphoonJpegDir512x512 または TyphoonJpegDir2048x2048 で固定とし、未取得のjpegがあればdownloadするように直すわ。 res='512x512' # default OPT=`getopt -o hl -l highreso,lowreso -- "$@"` eval set -- "$OPT" while true; do case "$1" in -h | --highreso) res='2048x2048' shift ;; -l | --lowreso) res='512x512' shift ;; --) shift break ;; esac done dir=./TyphoonJpegDir${res} for d in $(seq -w 01 16); do for h in $(seq -w 0 23); do file="HMW92308${d}${h}.globe.1.jpg" url="http://agora.ex.nii.ac.jp/digital-typhoon/globe/color/2023/$ {res}/${file}" [ -f $dir/$file ] || { echo $url; curl -f -s -R -o "$dir/$file" $url; } done done #set -x time convert $(ls $dir/*.jpg) TyphoonAime${res}.gif ls -o TyphoonAime${res}.gif ※見やすくするためインデントは全角スペースに置換してあります。 >>40 Kotlin ただし paiza.io のサイトの都合で大きい画像の出力がうまく行かないのと時間が掛かるとタイムアウトしてしまうので、 それらを避けるために 2023/08/15~2023/08/16 の8時間間隔(0, 8, 16 時)の画像を収集して 120x120 の大きさに 変更してアニメーションGIFにして出力するようにした。その時に HTML で <img src="data:image/gif;base64,..."> で埋め込んでいるのでHTMLモードで表示させるとブラウザに画像が表示される。スマホでも見てみたがちゃんと 動いている画像で表示された。 https://paiza.io/projects/w-fOIVbPGuSPh1_DJTSatA 可視光は globe.0 だな しかも夜のデータ無いやん 過去未来100年(幅201年)の範囲で 2023年とカレンダーの曜日が一致する年を全て出力せよ また任意の指定年の前後100年で同じ動作をする(閏年も考慮)ように改変せよ 6,11,11,6,11,11,・・・なんでこうなうの? >>52 365と366を7で割った余りは1と2なので、平年には翌年の元日の曜日が1つ進み、閏年には2つ進む。 100の倍数の年の例外を除けば、曜日の進みは1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 2, ...のように 1, 1, 1, 2というパターンの繰り返しになる。 パターン1, 1, 1, 2のうちの最初の1の年から始めて、何年後に曜日の進みの累積が7の倍数かつ その年が閏年でなくなるかを順々に求めれば6, 11, 11年後となり、ここでパターン1, 1, 1, 2の うちの最初の1の年に戻るので、以降は6, 11, 11年後というパターンの繰り返しになる。 ┌──────────┐ │ ↓ @@@❷@@@❷@@@❷@@@❷@@@❷@@@❷@@@❷@@@❷ │ ↑ │ ↑ └─────┘ └──────────┘ お題: お風呂の準備。 容積225Lの浴槽に適温39度のお湯200Lを用意したい。 次の2つのスイッチのON/OFFを切り替えてお湯を用意するプログラムを作れ。 スイッチ1: これをONにすると浴槽に水温20度の水を分速10Lで投入する。 スイッチ2: これをONにすると浴槽の水を800ワットの電熱線で加熱する。 ただし、浴槽に容積の1/2以上の水またはお湯が入っていないときは、空焚き防止のため、加熱しないものとする。 放熱は考慮しなくてもよい。 出力例) 時刻??: スイッチ1をONにしました。 時刻??: スイッチ2をONにしました。 時刻??: お風呂ができました。 時刻??: スイッチ1をOFFにしました。 時刻??: スイッチ2をOFFにしました。 >>49 Kotlin 折角なので Iterator で作った。(でも AbstractIterator クラス使ったので特に苦労はしていない) https://paiza.io/projects/v1X96MyvBFn0N4z9X-9gkw >>55 800Wの電熱線で加熱するとどれだけの量の水がどのぐらいの時間で1度上がるか、など、基本的な事が分からない。 >>56 200年分のデータを配列を貯め込む>>51 の方法よりも そのようなメモリ消費を必要としないイテレータを作る案は好ましい方法ですね しかし-100や+100は今回たまたまのマジックナンバーに過ぎないですし 例えばお題が「指定した年とその後(またはそれ以前に)同じカレンダーになる年を100個求めよ」もありえます したがって作成しておくべき汎用イテレータは指定した年から順方向に返すイテレータと逆方向に返すイテレータでしょう それがあれば今回のお題を含めた様々なバリエーションのお題に対応できると思います >>58 へのお題 指定した年とその後(またはそれ以前に)同じカレンダーになる年を100個求めよ // Rust 双方向イテレータ版 struct SameCalendarYear(u32); impl Iterator for SameCalendarYear { type Item = u32; fn next(&mut self) -> Option<u32> { common_next(self.0, false).map(|year| { self.0 = year; year }) } } impl DoubleEndedIterator for SameCalendarYear { fn next_back(&mut self) -> Option<u32> { common_next(self.0, true).map(|year| { self.0 = year; year }) } } fn common_next(start_year: u32, is_before: bool) -> Option<u32> { let mut day = 0; let mut year = start_year; while year > 0 { if is_before { year -= 1; } day += 1 + leap(year); if day >= 7 { day -= 7; } if !is_before { year += 1; } if day == 0 && leap(year) == leap(start_year) { return Some(year); } } None } fn leap(year: u32) -> u32 { (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)) as u32 } >>59 指定した年と同じカレンダーの年を前後 n 個表示 (長くなるので今回は10個だけ表示) fn main() { let n = 10; for year in [2000, 2023, 2024, 2025, 2100] { println!("{year}年より前: {:?}", SameCalendarYear(year).rev().take(n).collect::<Vec<_>>()); println!("{year}年より後: {:?}", SameCalendarYear(year).take(n).collect::<Vec<_>>()); } } このRust公式の実行環境で実行やコード編集ができます https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=5e5a518120f75351ca5ff5fdd0bf4d8c // 実行結果 2000年より前: [1972, 1944, 1916, 1876, 1848, 1820, 1780, 1752, 1724, 1684] 2000年より後: [2028, 2056, 2084, 2124, 2152, 2180, 2220, 2248, 2276, 2316] 2023年より前: [2017, 2006, 1995, 1989, 1978, 1967, 1961, 1950, 1939, 1933] 2023年より後: [2034, 2045, 2051, 2062, 2073, 2079, 2090, 2102, 2113, 2119] 2024年より前: [1996, 1968, 1940, 1912, 1872, 1844, 1816, 1776, 1748, 1720] 2024年より後: [2052, 2080, 2120, 2148, 2176, 2216, 2244, 2272, 2312, 2340] 2025年より前: [2014, 2003, 1997, 1986, 1975, 1969, 1958, 1947, 1941, 1930] 2025年より後: [2031, 2042, 2053, 2059, 2070, 2081, 2087, 2098, 2110, 2121] 2100年より前: [2094, 2083, 2077, 2066, 2055, 2049, 2038, 2027, 2021, 2010] 2100年より後: [2106, 2117, 2123, 2134, 2145, 2151, 2162, 2173, 2179, 2190] お題:2Dゲームのスクロール処理 整数の二次元配列(高さ50, 横幅100)上にランダムに整数1〜9が200個配置される。 この配列を高さ20, 横幅40の矩形領域に切り取って表示したい。キーボードの入力(l, r, t, b)で矩形領域を移動させ切り取る領域を変化させよ。 >>64 試しに自分で書いてどんなプログラムになるのか見せてくれ >>64 PowerShell (等幅フォント限定。最初は一番左上の領域が表示される。qキーで終了。Ubuntu版ではカーソルが消えない) $a = random (1..9999) -count 200 |% {$_ % 9 + 1} $b = random (0..4999) -count 200 $c = [char[][]](,(," " * 100) * 50) 0..199 |% {$c[[Math]::Floor($b[$_] / 100)][$b[$_] % 100] = [string]$a[$_]} $L = 0..49 |% {-join $c[$_]} $UI = $Host.UI.RawUI $p, $s = $UI.CursorPosition, $UI.CursorSize $p.y = [Math]::Min($p.y, $UI.BufferSize.Height - 23) $x = $y = 0 $border = "+" + "-" * 40 + "+" while ($true) { try {$UI.CursorSize = 0} catch {} $UI.CursorPosition = $p $border 0..19 |% {"|" + $L[$y + $_].SubString($x, 40) + "|"} $border switch ($UI.ReadKey(6).Character) { "l" {if ($x -gt +0) {$x--}} "r" {if ($x -lt 60) {$x++}} "t" {if ($y -gt +0) {$y--}} "b" {if ($y -lt 30) {$y++}} "q" {try {$UI.CursorSize = $s} catch {} return} } } お題:ウィンドウのアラインメント処理 マウスの座標の変化からウインドウを描画すべき座標を計算したい。 ただし変形する形は縦横4方向、斜め4方向の8パターンとし、寄せた方向に幅が1/2となること。 曜日はシュメール人が使い始めたらしいので、お近くのシュメール人に聞きください。 文字列Sの中に含まれる回文をすべて列挙ってどうやったらいいですかね(*_*) aとかbみたいな一文字でも回文とみなしますです 文字列Sは1文字以上100文字以下で、半角英字であることがわかってます とんでもない計算量になる気がするのですが、鮮やかなやりかたってないものかと…トホ(ヽ´ω`) >>71 それって例えば "ABCBAXYZZYX" だったら "ABCBA" と "XYZZYX" が抜き出せれば良いの? 途中の "BCB", "C", "YZZY", "ZZ" も抜き出すの? 回文の長さに制限があるから、回文の長さで場合分けすれば、全部列挙可能。 >>72 途中のもぜんぶっす… 含まれる回文、ひとつのこらず出力です(;´∀`) たとえAとかBみたいな一文字でも回文と定義します なのでAとかXも抜き出します٩(′д‵)۶ で、一文字目にAがあって、5文字目にもAがあるじゃないですか?こういった場合は、どっちも出力しちゃって大丈夫です! 重複された出力が行われるのは問題ないんです! ただ、「過去にすでにその分の出力が行われていた場合、重複した出力を再度行わない」というやりかたでもし計算量が飛躍的に下がるということであれば、そのやりかたが知りたいというのもまああります(*_*; 重複する出力をするかしないか、それはどちらでもオケーです 全パターンチェックするようにループ回すならとりあえず理屈ではできると思うんですが、計算量がとんでもないことになりそうな感じで、ちょっとお手上げでした/(^o^)\ たとえば文字列Sがabbbaだとすると、すくなくともa,b,bb,bbb.abbbaが最低一回は出力される必要があります できればaやbが複数回出力されず一回しか出力されないほうがいいですが、必須ではないです >>71 C++ #include <stdio.h> bool is_kaibun(const char *str, size_t len) { for (size_t i = 0; i < len/2; i++) if (str[i] != str[len - i - 1]) return false; return true; } void detect_kaibun(const char *str, size_t len) { for (size_t klen = 1; klen <= len; klen++) { for (size_t i = 0; i < len - klen + 1; i++) if (is_kaibun(str + i, klen)) printf("%*s\n", (int)klen, str + i); } } int main(void) { detect_kaibun("ABCBCXC", 7); return 0; } >>76 間違えた。 printf("%*s\n", (int)klen, str + i); を printf("%.*s\n", (int)klen, str + i); に訂正。 >>77 ありがとうございます、ちょっとためしてみますm(_ _)m >>77 動いている様子を確認させていただきました!!ありがとうございました! 当チケットはこれにてクローズとさせていただきたいと思いますヽ(=´▽`=)ノ >>76 こうすると計算量を減少できる fn len_of_eq(s: &str, index: usize, even: usize) -> usize { let mut len = 0; for (p, q) in std::iter::zip(s[(index + even)..].chars(), s[0..=index].chars().rev()) { if p != q { break; } len += 1; } return len; } fn print_kaibun(s: &str) { for index in 0..s.len() { for even in 0..=1 { for len in 1..=len_of_eq(s, index, even) { let first = index + 1 - len; let last = index + len - 1 + even; println!("{first}~{last}: {}", &s[first..=last]); } } } } fn main() { print_kaibun("ABCBAXYZZYX"); } まずこの部分が最初のヒントで >>それって例えば "ABCBAXYZZYX" だったら "ABCBA" と "XYZZYX" が抜き出せれば良いの? >>途中の "BCB", "C", "YZZY", "ZZ" も抜き出すの? >途中のもぜんぶっす… 最も長いものを抜き出せばその一部分はその中に含まれている だから短いのが判明した時点で引き続き長いのも探索しないと多重に無駄に比較が行なわれてしまう もう一つのポイントは回文は対称系で長さ奇数と偶数の二種類があること 長さ奇数「DCBABCD」と長さ偶数「DCBAABCD」どちらの場合も 比較は対称点となるAからのみ出発して比較していけばよくて 順方向&逆方向へ最長分を比較していけば上述の無駄な比較を減らせる このような順番で見つかっていくことになる >>81 の実行結果 0~0: A 1~1: B 2~2: C 1~3: BCB 0~4: ABCBA 3~3: B 4~4: A 5~5: X 6~6: Y 7~7: Z 7~8: ZZ 6~9: YZZY 5~10: XYZZYX 8~8: Z 9~9: Y 10~10: X お題 abc1.mp4 abc2.mp4 .. abc20.mp4があるとします これを名前順でソートできるようにするため abc001.mp4 abc002.mp4 ... abc020.mp4 とリネームしてください コレでどーかぬ #!/bin/bash # ファイル名のプレフィックス prefix="abc" # ソート対象のファイルリストを取得 file_list=$(ls ${prefix}*.mp4 | sort) # ファイルを001、002、...の形式にリネーム counter=1 for file in $file_list; do new_name=$(printf "${prefix}%03d.mp4" $counter) mv "$file" "$new_name" counter=$((counter + 1)) done いいだしっぺということで作ってきたら既に投稿が printfするところは一緒ですね bash,勉強になります haskell import Text.Printf import System.IO import System.Directory import System.FilePath.Glob import Data.List import Control.Monad kaku = ".mp4" fn = "abc" main = do files <- glob (fn <> "*" <> kaku) zipWithM_ (\a b -> renameFile a b) files (map f files) where f l = let r1 = reverse $ takeWhile ((/=) '/') $ reverse l in let r2 = (r1 \\ fn) \\ kaku in fn <> printf "%03d" (read r2 :: Int) <> kaku お題:celeronで快適に動作するwebブラウザを作れ >>85 Perl5 rename "abc$_.mp4", sprintf 'abc%03d.mp4',$_ for 1..20; ※abc1.mp4 abc2.mp4 .. abc20.mp4 があるとしています。 また abc001.mp4 abc002.mp4 ... abc020.mp4 は既存かのチェックは省いています。 すごい簡潔ですね!perlすごい これはワンライナーではないのでしょうか #!/usr/bin/perl .. としてperl rename.plを動かすと動きました ファイルはこれ(bash)で用意できます for i in {1..20}; do touch abc$i.mp4; done tcsh のバヤイわこうかぬ foreach i (`seq 1 20`) # 1から20までの数値を生成 # ファイル名を生成し、touchコマンドでファイルを作成 set filename = "abc$i.mp4" touch $filename end 1~20を決め打ちして良いならもっと簡単にできたな。まあいいや。 お題:32ビット浮動小数点数のnextafter() 32ビット精度(IEEE754のbinary32)の変数aを 64ビット精度(IEEE754のbinary64)の変数bに代入する。 ここで、nextafterf(a, 0)やnextafterf(a, 正の無限)などに相当する操作を bに対して行え(bを32ビット浮動小数点数に戻すのは無しで)。 操作結果のoverflowやunderflowは考慮しなくてもよい。 お題:日本語の文章が入力されるので「、」をカンマに、「。」を改行に変換せよ Python s = input() s = s.replace("、", ",") s = s.replace("。", "\n") print(s) Haskell import Data.List.Utils main = do s <- getContents putStrLn $ replace "。" "\n" $ replace "、" "," s コンパイルはしてないので動かないかも お題 文字列S=abcdefghij(10文字)が与えられて 配列[0,4,7]が与えられる このときSの0番目を4番目、4番目を7番目、7番目を0番目に移動した文字列を出力するプログラムを書いてください >>101 Ruby 文字列S='abcdefghij' 配列=[0,4,7] 文字列 = 文字列S.dup 配列.zip( 配列.rotate ).each{|i,j| 文字列[i] = 文字列S[j] } puts 文字列 お題: コンソールに指定したUTF-8文字列のQRコードを表示するプログラム。 use std::io::{stdin, Read}; use std::error::Error; use qrcode::QrCode; fn read() -> Result<String, Box<dyn Error>> { Ok(stdin().lock().bytes().map(|c| c.expect("char") as char).collect()) } fn main() -> Result<(), Box<dyn Error>> { let qr = QrCode::new(read()?.as_bytes())?; let s = qr.render().light_color(' ').dark_color('#').build(); println!("{}", s); Ok(()) } お題: 指定されたフォントのひらがなの各文字について ひらがなの線に囲まれて閉じた領域の個数を調べ、最もその個数の多い文字ベスト3を出力せよ。 >>97 bash のコマンドラインで以下のように入力すると標準入力から入力して「、」が「,」に、「。」が改行に変換されて標準出力に出力される。 (起動する環境は bash でなければならないということはないと思うが、他のシェルは確認していない)。 sed 's/、/,/g;s/。/\n/g' もちろん日本語入出力可能な端末を使用して、尚且つ sed がその入力をまともに受け付けてくれなければちゃんと動かない。 お題: 指定されたフォントのひらがなの各文字について ひらがなの線に囲まれて閉じた領域の面積を調べ、各文字毎にそれぞれの面積の順序を最も大きい物から順に出力せよ。 またその情報を元に輪郭のhierarchy情報をcv2で利用出来る形で出力せよ お題 文字列が入力されます 赤と緑を入れ替えて 黒と白を入れ替えて 黄と青を入れ替えてください 例 入力: 緑のカバンに500万入れて白の紙で黄色のカバン言うて書きながら赤のカバン言いながら置いてくれたら俺黒のカバン言いながら取りに行くわ 出力: 赤のカバンに500万入れて黒の紙で青色のカバン言うて書きながら緑のカバン言いながら置いてくれたら俺白のカバン言いながら取りに行くわ >>111 node const swap = (text, [w1, w2]) => text.split(w1).map(v => v.replaceAll(w2, w1)).join(w2) const swapAll = (text, rules) => rules.reduce(swap, text) const text = '緑のカバンに500万入れて白の紙で黄色のカバン言うて書きながら赤のカバン言いながら置いてくれたら俺黒のカバン言いながら取りに行くわ' const rules = [['赤', '緑'], ['黒', '白'], ['黄', '青']] const replaced = swapAll(text, rules) // console.log(replaced) console.log(replaced === '赤のカバンに500万入れて黒の紙で青色のカバン言うて書きながら緑のカバン言いながら置いてくれたら俺白のカバン言いながら取りに行くわ') // true >>111 ウェブブラウザのJavaScript https://pastebin.com/YvymwTeN ユーザースクリプトの体裁で書いたけどブラウザーのConsoleでも動かせる Firefox: Ctrl+Shift+K Chrome: Ctrl+Shift+J https://mevius.5ch.net/test/read.cgi/tech/1691038333/111 を開いてそこで実行 結果はレスに直接追記 重複がないからXPathのtranslate()でいけるな思った、それだけ >>104 1. qrencode というプログラムをインストールする。(例: RedHat系Linuxなら yum install qrencode) 2. qrencode で出力に ansi 等を指定して文字列で出力する。 例: qrencode -t ansi やっほー 3. 画面に出て来たQRコードをスマホで撮影する等して確認する。 4. 終わり。 [クライシスアクター」「豊島保養所」←画像検索&拡散! 他スレに丸ごとコピペよろしっく!! ネットでできる反レプティリアン・反イルミ活動です!!!!! 動画サイトのコメ欄もねらい目だぞーーーー!!!!!!! [クライシスアクター」「豊島保養所」←画像検索&拡散! 他スレに丸ごとコピペよろしく!! ネットでできる反レプティリアン・反イルミ活動です!!!!! 動画サイトのコメ欄もねらい目だぞ!!!!!!! お題:n階建てのビルに定員4人のエレベーターがある。エレベーターは各階でボタンが押されるとその階に向かう。住人達はエレベータを呼んで乗るとエレベーター内で次に向かう階へのボタンを押す。ボタンを押すのは乗員全員である。乗るのを待っている住人が定員より多かった場合、エレベーターは乗れなかった住人を優先的に回収する。住人は列の先頭から順番にエレベーターに乗り込む。エレベーターは乗員を降ろしている間に住人を追加で乗せることはなく、すべての乗員を降ろしてから次の住人の回収に向かうものとする。 もっとも効率がいいエレベーターの停止順序を求め、入力に対して停止階のリストを出力せよ。 エレベーターの初期位置は1階とする。 入力 階数 乗員数 住人たちがいる階 乗員iが向かう階 乗員iが向かう階 … 5 1 1 5 2 4 3 2 3 2 1 3 5 出力 停止階 停止階 … 1 5 4 3 2 1 3 5 入力 10 5 1 1 2 3 4 4 9 4 10 10 10 1 8 6 6 6 5 出力 1 2 3 4 1 4 1 10 4 6 8 4 5 >>120 「もっとも効率がいいエレベーターの停止順序」とは? 1.停止回数がもっとも少ない 2.移動した階数の和が最も小さい 3.ほか など、どのような指標? while (true) push(BUTTON_A) お題:角カッコの列が入力されるのでカッコの対応が取れていたら1,取れていなかったら0と表示せよ < [[]] > 1 < [[] > 0 >>127 Perl bash 等のシェルのコマンドラインで以下のように入力すると標準入力から入力して結果を標準出力に出力する。 perl -ne '$n=0;while(/(.)/g){if($1eq"["){$n++}elsif($1eq"]"){$n--}}$f=$n==0?1:0;print"$f\n"' 実行例 [[]] 1 [[] 0 [[[[]][[]]] 0 [[[[]][[]]]] 1 >>127 Ruby %W( [[]] [[] [[[[]][[]]] [[[[]][[]]]] ][ #{} ).each{|s| w = s.dup {} while w.sub!( /\[\]/, '' ) puts "#{(s != '' && w == '')? 1 : 0} #{s.inspect}" } # 1 "[[]]" # 0 "[[]" # 0 "[[[[]][[]]]" # 1 "[[[[]][[]]]]" # 0 "][" # 0 "" 1) BY RG 2) RG BY 3) GR YB 1-3を回転対称で同じとみなせるグループと線対称で同じとみなせるグループに分類せよ 4色を2x2の升にランダムに一つづつ配置して4x3x2通りのパターンを作成し それぞれを上の基準でグループ分けせよ お題:Pythonのmath.ulp()と同機能の関数 引数が正規化数限定のサブセットでも可(その旨を明記)。 Pythonで実装する場合は(もちろん)math.ulp()を使ってはならない。 簡単なお題: >>133 のサブセット(求めたulpも正規化数限定) import struct def my_ulp(x): # 浮動小数点数xをバイト列に変換 b = struct.pack("d", x) # バイト列を整数に変換 i = int.from_bytes(b, "little") # 符号部(1ビット)を取り出す s = i >> 63 # 指数部(11ビット)を取り出す e = (i >> 52) & 0x7ff # 仮数部(52ビット)を取り出す m = i & 0xfffffffffffff # 指数部が0や最大値ならエラー if e == 0 or e == 0x7ff: raise ValueError("x is not a normalized number") # 仮数部の最下位ビット(1ビット)を求める lsb = m & 1 # 符号部と指数部を元に戻す i = (s << 63) | ((e - lsb) << 52) # 整数をバイト列に変換 b = i.to_bytes(8, "little") # バイト列を浮動小数点数に変換 return struct.unpack("d", b)[0] >>136 math.ulp()は符号を戻さないらしいです: ulp(1) == ulp(-1) お題:文字列「せんだ」「みつを」「ナハナハ」がランダムに100行入力される。せんだ、みつを、ナハナハが順番に入力されたときに1と一行出力せよ お題: (1)Python3.12以降の、math.nextafter()のサブセット (実装はPythonでなくても構いません) 64ビット長程度の整数iを引数として、 a)iがゼロ:foo(i) = 0.0 b)i > 0:foo(i) = nextafter(0, inf, steps=i) c)i < 0:foo(i) = nextafter(0, -inf, steps=-i) を満たすfoo()を書く。 Python3.12を使う場合は、nextafter()を使ってはならない。 (2)(1)の逆関数。 補足:(1)(2)いずれも実用的な時間内で求める事(steps=1相当のnextafter()をループで回すのは不可)。 read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる