プログラミングのお題スレ 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