プログラミングのお題スレ Part22 (831レス)
プログラミングのお題スレ Part22 http://mevius.5ch.net/test/read.cgi/tech/1691038333/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
812: デフォルトの名無しさん [] 2025/08/21(木) 23:15:48.39 ID:0KQ1xtxb >>799 の逆変換プログラム R https://ideone.com/TU73Yu C++ https://ideone.com/dmETd5 問題A, 問題Bとは違って、順列に出現するユニークな整数は1〜nの連番でなくても良いし、 出現回数はすべて同じでなくても良い。例えば、入力は [3, 1, 4, 1, 5, 9] でも良い (ユニークな整数は1, 3, 4, 5, 9で、出現回数は1が2回、その他が1回)。 http://mevius.5ch.net/test/read.cgi/tech/1691038333/812
814: デフォルトの名無しさん [sage] 2025/08/22(金) 06:55:21.34 ID:qlaiAqZd >>812 Rust >>799の逆変換の重複順列の何番目か算出 use itertools::Itertools; use num::{BigUint, One}; // 重複順列の何番目かを求める ex. "222331434114" → "123456"番目 fn to_nth(input: &str) -> String { // 出現数 let (mut counts, chars): (Vec<usize>, Vec<char>) = input.chars().sorted().dedup_with_count().multiunzip(); // index化input let input: Vec<usize> = input.chars().map(|c| chars.iter().position(|&c0| c0 == c).unwrap()).collect(); // 階乗関数 fn factorial(x: usize) -> BigUint { (1..=x).fold(BigUint::one(), |p, x| p * x) } // 重複順列の総数 let mut whole: BigUint = factorial(input.len()) / counts.iter().map(|&x| factorial(x)).product::<BigUint>(); // nth番目を算出 (1..=input.len()).rev().zip(input).fold(BigUint::one(), |mut nth, (len, index)| { // 自分より前までの総数をnthに足す nth += &whole * counts[..index].iter().sum::<usize>() / len; // 自分の総数へ更新 whole *= counts[index]; whole /= len; counts[index] -= 1; nth }) .to_string() } http://mevius.5ch.net/test/read.cgi/tech/1691038333/814
820: デフォルトの名無しさん [] 2025/08/24(日) 21:13:57.80 ID:ubCw2JoQ >>812の逆変換プログラムは>>808の順変換プログラムを流用したから処理に無駄があった。 逆変換用に一から書き直したらすっきりした。 R https://ideone.com/jYUHe1 C++ https://ideone.com/Lne3AQ http://mevius.5ch.net/test/read.cgi/tech/1691038333/820
827: デフォルトの名無しさん [sage] 2025/08/29(金) 20:09:32.40 ID:VEuLqGzD >>812 ruby 2.5.5 https://ideone.com/tzzN04 ・tallyあるのは2.7以降 >>812 octave https://ideone.com/ebJd9k http://mevius.5ch.net/test/read.cgi/tech/1691038333/827
830: デフォルトの名無しさん [sage] 2025/08/30(土) 17:37:04.21 ID:zI+bKiSo >>812 ocaml https://ideone.com/SfsytC >>812 scheme (chicken 4.13) https://ideone.com/jwWrRt http://mevius.5ch.net/test/read.cgi/tech/1691038333/830
831: 830 [sage] 2025/09/02(火) 21:36:10.92 ID:MM5Gazf9 >>812 scheme (chicken 4.13) https://ideone.com/fZufck ・集計部分をalistに変えてみただけ http://mevius.5ch.net/test/read.cgi/tech/1691038333/831
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.036s