プログラミングのお題スレ Part22 (884レス)
1-

654: 2025/02/22(土)23:33 ID:k7PDvk0j(1) AAS
>>640
Haskell
外部リンク:ideone.com
655: 警備員[Lv.21] 2025/02/24(月)18:11 ID:Ikw9MrIX(1) AAS
>>608

>>651とかとアルゴリズムはほぼ同じ。これといった捻りはない。
よく分からないが5chに書き込みがブロックされたのでURLのコロンまでは削った。

Perl
//paiza.io/projects/zAqms-VVEWIMhcgr8AV6Pw
Kotlin
//paiza.io/projects/iu8mTSyKsxqWx_T51Wpj4Q
C
//paiza.io/projects/bDkj3tRF_KmiBL67miRxyA
656
(5): 2025/02/26(水)21:33 ID:rkiIsmEI(1) AAS
お題: Python の int.bit_count()

65535 → 16
15 → 4
6 → 2
1 → 1
0 → 0
-1 → 1
-6 → 2
-15 → 4
-65535 → 16
657: 2025/02/26(水)23:29 ID:Gl9HHMVG(1) AAS
>>656
C++20
外部リンク:paiza.io
658: 2025/02/27(木)00:23 ID:TOGelnHV(1) AAS
>>656
Rust

fn bit_count(x: i64) -> usize {
const MAGIC_1: u64 = 0x5555555555555555; // 0101..0101
const MAGIC_2: u64 = 0x3333333333333333; // 0011..0011
const MAGIC_3: u64 = 0x0f0f0f0f0f0f0f0f;
const MAGIC_4: u64 = 0x00ff00ff00ff00ff;
const MAGIC_5: u64 = 0x0000ffff0000ffff;
const MAGIC_6: u64 = 0x00000000ffffffff;

let x = x.unsigned_abs();
省19
659: 2025/02/27(木)08:26 ID:LSRTW28H(1) AAS
>>656 Rust

trait BitCount {
 fn bit_count(&self) -> usize;
}
impl BitCount for i32 {
 fn bit_count(&self) -> usize {
  self.unsigned_abs().count_ones() as usize
 }
}
use num::{BigInt, One};
省12
660: 2025/02/28(金)01:30 ID:1HSOHgVq(1) AAS
intは処理単位のことなんだけどな
何ビットで表現できるかという意味ではない
661: 9 2025/02/28(金)03:12 ID:MEvV9q87(1) AAS
負の場合に表現可能なビット数を配慮しないとPython の int.bit_count()と同じ結果にならないんジャマイカじゃまいか
たぶんPythonの整数がbigintのせいだとおもう
絶対値とってpopcountとかやらないと意外とあれこれ書いてプチ長めのコードになりそうなおかん
662: 2025/02/28(金)23:07 ID:SRu+xdWw(1) AAS
よく見たらみんな絶対値をとったりbigintを使ったりしてるな
663
(1): 2025/03/01(土)20:18 ID:H8RpZRUP(1/2) AAS
>>656
PowerShellのBigIntなら、

$b = @(0)
1..8 |% {$b += $b |% {$_ + 1}}

function bit_count([BigInt]$n)
{
  ($b[[BigInt]::Abs($n).ToByteArray()] | measure -sum).Sum
}

65535, 15, 6, 1, 0, -1, -6, -15, -65535, [BigInt]::Pow(123, 45) |% {
  "$_ → $(bit_count $_)"
省12
664: 2025/03/01(土)20:19 ID:H8RpZRUP(2/2) AAS
お題:1からnまでの自然数のビット単位での総排他的論理和1 ⊕ 2 ⊕ 3 ⊕ … ⊕ nを求める
関数を作り、n = 123456789, 12345678901234567890のときの値を表示せよ。
665: 2025/03/01(土)21:19 ID:5VrbV50/(1) AAS
A003815かな
666: 2025/03/01(土)21:32 ID:UfbLQAky(1) AAS
数学の試験で中間式を省いて解答だけ書くタイプw
667: 2025/03/01(土)23:41 ID:+HRoh0yF(1) AAS
まあ数列の問題ならOEISを見てみるよな
668: 2025/03/02(日)01:21 ID:xdmIFouH(1) AAS
>> 664  Rust
fn f(n: u64) -> u64 {
 // f(n) = 1⊕2⊕3⊕...⊕n とすると (2k)⊕(2k+1)=1 であるから 1⊕1=0 より
 // f(4k+1) = (4k+1)⊕(4k)⊕(4k-1)⊕(4k-2)⊕f(4k-3) = f(4(k-1)+1) = ... = f(1) = 1
 // f(4k+3) = (4k+3)⊕(4k+2)⊕f(4k+1) = 0
 // f(4k) = (4k)⊕f(4k-1) = 4k
 // f(4k+2) = (4k+2)⊕f(4k+1) = (4k+2)⊕1 = 4k+3
 match n % 4 {
  0 => n,
  1 => 1,
省13
669: 2025/03/11(火)21:18 ID:Qmk3F8/1(1) AAS
>>656
PowerShellでもPopCountがいつの間にか使えるようになっていた。Version 7.5.0で動作確認。

function bit_count($n)
{
  [BigInt]::PopCount([BigInt]::Abs($n))
}

65535, 15, 6, 1, 0, -1, -6, -15, -65535, [BigInt]::Pow(123, 45) |% {
  "$_ → $(bit_count $_)"
}

実行結果は>>663と同じ。
670
(6): 2025/03/13(木)20:35 ID:QP/8WHEA(1) AAS
お題:数列が入力される。元の数列に逆順にした数列を減算したときの値を出力せよ

In < 12345
OUt > -41976 (12345 - 54321)
671
(2): 2025/03/13(木)21:13 ID:SRpNsp20(1) AAS
>>670
PowerShell

function f([BigInt]$n)
{
  $c = [char[]][string]$n
  $n - [BigInt]-join $c[-1..-$c.length]
}

12345, [BigInt]::Pow(12, 34) |% {"$_ → $(f $_)"}

[実行結果]
12345 → -41976
省1
672
(1): 2025/03/14(金)02:10 ID:wjeVVi0w(1/2) AAS
>>671
12の34乗は合っているけどその後の差がおかしくない?
4922235242952026704037113243122008064 から
4608002213423117304076202592425322294 を引いて
314233029528909399960910650696685770 が正解のところ
314233029528909439273950854852378624 となっているよ
正解は1の位が「4 - 4 = 0」になるはずだよね

>>670 Rust 逆文字列を生成する版

use num::BigInt;

fn odai(input: &str) -> Option<String> {
省9
673
(1): 2025/03/14(金)02:30 ID:wjeVVi0w(2/2) AAS
>>670 Rust 逆文字列を生成しない&整数ジェネリック版
use num::{BigInt, CheckedAdd, CheckedMul, CheckedSub, FromPrimitive};

fn chars_to_integer<X>(input: impl Iterator<Item = char>) -> Option<X>
 where X: FromPrimitive + CheckedMul + CheckedAdd,
{
 let (zero, ten) = (X::from_u32(0).unwrap(), X::from_u32(10).unwrap());
 input
  .map(|c| X::from_u32(c.to_digit(10)?))
  .try_fold(zero, |acc, x| acc.checked_mul(&ten)?.checked_add(&x?))
}
省11
1-
あと 211 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.024s