プログラミングのお題スレ Part22 (863レス)
上下前次1-新
抽出解除 レス栞
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
81(1): デフォルトの名無しさん [sage] 2023/08/27(日)01:14:16.06 ID:xDzSjAxc(1/2)
>>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");
}
136(1): デフォルトの名無しさん [sage] 2023/10/18(水)20:56:02.06 ID:L3TY2GGf(1)
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]
267(1): デフォルトの名無しさん [] 2024/02/21(水)16:02:55.06 ID:Sko4Sglv(1)
>>266
N=17
のときは?
440(1): デフォルトの名無しさん [] 2024/10/11(金)20:53:22.06 ID:BlO5cFoG(1/2)
>>438
perl -lpE'$_=join$"x4,split$"'
(文字列を入れる)
664: デフォルトの名無しさん [] 03/01(土)20:19:24.06 ID:H8RpZRUP(2/2)
お題:1からnまでの自然数のビット単位での総排他的論理和1 ⊕ 2 ⊕ 3 ⊕ … ⊕ nを求める
関数を作り、n = 123456789, 12345678901234567890のときの値を表示せよ。
717: デフォルトの名無しさん [sage] 03/29(土)11:51:50.06 ID:UeqVkFR5(1)
>>714
Rust
use itertools::Itertools;
fn f(input: &str) -> impl Iterator<Item = &str> {
input.split(',')
.map(|pair| (pair, pair.splitn(2, '-').collect_tuple().unwrap()))
.filter(|(_, (a, b))| a < b)
.flat_map(|(pair, (a, b))| {
input.split(',')
.map(|pair| pair.splitn(2, '-').collect_tuple().unwrap())
.filter_map(move |(x, y)| (a == y && b == x).then_some(pair))
})
}
fn main() {
let input = "D-L,U-X,U-Y,U-R,Z-B,B-E,B-M,B-N,V-H,V-X,W-F,W-R,R-B,R-W,O-W,O-S,F-A,Q-X,P-E,P-L,X-X,Y-M,Y-C,L-U,L-V,I-X,E-B,H-M,A-S";
itertools::assert_equal(["B-E", "R-W"], f(input).sorted());
}
797: デフォルトの名無しさん [] 08/12(火)21:05:08.06 ID:uRUBTkGF(1/2)
>>771
PowerShell 6以降
function rank($a)
{
$n = $a.length
$r = [int[]]::new($n)
if ($n) {0..($n - 1) | sort-object -stable {$a[$_]} |% {$i = 0} {$r[$_] = $i++}}
$r
}
function PrintArray($a)
{
if ($a.length -le 1) {return $a}
"[$(($a |% {PrintArray $_}) -join ", ")]"
}
$q =
(1, 100, 10, 10000, 1000),
(3, 1, 4, 1, 5, 9, 2),
(0, 1, 0, 1, 0, 1, 0, 1),
@(),
1,
((1, 1), (1, 1), (1, 0, 1), (1, 0))
$q |% {
"入力: $(PrintArray $_)"
"出力: $(PrintArray (rank $_))"
""
}
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.034s