26/06/11 08:22:18.37 P5O/X5j+.net
>>906
Harelangは厳格な記述が簡潔に書けそうな言語ですね。
919:デフォルトの名無しさん
26/06/11 11:40:44.85 ODdO6Cqz.net
Hagelang
920:デフォルトの名無しさん
26/06/11 12:48:07.35 VNqx9klH.net
>>914
Rust
fn bit1_count(mut n: u8) -> u8 {
const MASK0: u8 = u8::MAX / ((1 << (1 << 0)) + 1);
const MASK1: u8 = u8::MAX / ((1 << (1 << 1)) + 1);
const MASK2: u8 = u8::MAX / ((1 << (1 << 2)) + 1);
n = ((n >> (1 << 0)) & MASK0) + (n & MASK0);
n = ((n >> (1 << 1)) & MASK1) + (n & MASK1);
n = ((n >> (1 << 2)) & MASK2) + (n & MASK2);
n += n >> (1 << 2);
n
}
fn main() {
assert_eq!(1, bit1_count(b'@'));
assert_eq!(2, bit1_count(b'A'));
assert_eq!(3, bit1_count(b'a'));
assert_eq!(4, bit1_count(b'Z'));
assert_eq!(5, bit1_count(b'z'));
assert_eq!(6, bit1_count(b'w'));
}
921:デフォルトの名無しさん
26/06/11 21:11:14.53 RnZluyHy.net
>>914
PowerShell 7.5以上
[int]::PopCount([char]"a")
922:デフォルトの名無しさん
26/06/11 22:57:06.41 eF0sVVf0.net
>>914 c
URLリンク(ideone.com)
>>914 ruby
URLリンク(ideone.com)
f = ->c {c.ord.digits(2).sum}
>>914 octave
URLリンク(ideone.com)
f = @(c) sum(bitget(int8(c), 1:7));
923:デフォルトの名無しさん
26/06/12 12:27:02.63 QQgKSohX.net
>>914
Java
void main() {
var t = new int[] {
0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4,
1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
};
IO.println(t['a']);
}
924:デフォルトの名無しさん
26/06/12 12:42:53.23 QQgKSohX.net
>>903
Java
void main() {
var H = 10.0;
var N = 5;
var D = 7;
int C = 9;
var jump = 0.0;
var fall = H;
var result = 0.0;
for (var i = 0; i < C; i++) {
result += jump + fall;
jump = fall * N / D;
fall = jump;
}
IO.println(result);
}
925:デフォルトの名無しさん
26/06/12 19:58:33.16 +IDSLN+3.net
>>914 ocaml
URLリンク(ideone.com)
>>914 scheme chicken
URLリンク(ideone.com)
>>914 java
URLリンク(ideone.com)
926:デフォルトの名無しさん
26/06/12 20:56:20.62 Q5++65Sj.net
>>910
C++
URLリンク(paiza.io)
汚いコードかもしれないけど動いたのでうp
927:デフォルトの名無しさん
26/06/12 21:05:31.51 Q5++65Sj.net
>>924
とても読みやすかった
jumpとfallを分けて表したおかげか
928:デフォルトの名無しさん
26/06/13 00:05:33.74 Tn5XfMTY.net
>>905
Java
URLリンク(paiza.io)
929:デフォルトの名無しさん
26/06/13 00:34:04.70 o8R5rsuM.net
お題
次の計算を行う関数を作成して、F(80)の値を求めてください
F(0) = 4
F(1) = 17 / 4
F(N) = 108 - 815 / F(N - 1) + 1500 / (F(N - 1) * F(N - 2))
期待結果
4.9999999999
930:デフォルトの名無しさん
26/06/13 07:51:01.32 l7rlNBRR.net
>>929
R
URLリンク(ideone.com)
小数第10位までに丸めれば4.9999999999ではなく5.0000000000になるが
931:デフォルトの名無しさん
26/06/13 10:24:15.90 SWkTJIEe.net
>>929 lisp
URLリンク(ideone.com)
出力の一行目は分数
932:926
26/06/13 10:39:09.96 o8R5rsuM.net
>>930
5前後なら良いかなと思ってる
100前後になると良くない
933:デフォルトの名無しさん
26/06/13 12:24:11.68 DFdZ4VRS.net
>>929
倍精度浮動小数点数では約100になってしまいますね
python3
URLリンク(paiza.io)
-- ソース --
from fractions import Fraction
N = 80
F = dict()
F[0] = 4
F[1] = Fraction(17, 4)
for n in range(2, N + 1):
F[n] = 108 - Fraction(815, F[n-1]) \
+ Fraction(1500, Fraction(F[n-1] * F[n-2]))
print(f"F({N}) is {float(F[N])}")
-- 出力 --
F(80) is 5.0
934:デフォルトの名無しさん
26/06/13 21:01:57.67 dHnr6beS.net
>>929
Rust
use fraction::BigFraction;
use memoize::memoize;
#[memoize]
fn f(n: usize) -> BigFraction {
let bf = |x| BigFraction::from(x);
match n {
0 => bf(4),
1 => bf(17) / bf(4),
n => bf(108) - bf(815) / f(n - 1) + bf(1500) / (f(n - 1) * f(n - 2)),
}
}
fn main() {
for n in 0..=80 {
let f = f(n);
println!("F({n}) = {f:.30} = {f}");
}
}
F(0) = 4 = 4
F(1) = 4.25 = 17/4
F(2) = 4.470588235294117647058823529411 = 76/17
F(3) = 4.644736842105263157894736842105 = 353/76
F(4) = 4.770538243626062322946175637393 = 1684/353
F(5) = 4.855700712589073634204275534441 = 8177/1684
...略
F(79) = 4.999999999999999994043669658466 = 41359030627651383817474849310671104336332210648235594113/8271806125530276773348891823090615755005322810072671996
F(80) = 4.999999999999999996426201795079 = 206795153138256918939565417139009598365577843034794672964/41359030627651383817474849310671104336332210648235594113
935:デフォルトの名無しさん
26/06/14 22:09:26.37 q6g57PY5.net
>>929 ocaml
URLリンク(ideone.com)
>>929 ruby
URLリンク(ideone.com)
>>929 scheme chicken
URLリンク(ideone.com)
・ideoneの4.13じゃ計算結果がexact numbersにならない?
936:デフォルトの名無しさん
26/06/15 21:08:55.26 0m/uD6SL.net
>>929 ocaml
URLリンク(ideone.com)
・配列使用
・Hashtblを使ったのが>>935
>>929 scheme chicken
URLリンク(ideone.com)
・↑のocamlの移植版
・named letでループさせたのが>>935
937:デフォルトの名無しさん
26/06/16 22:08:44.61 /yhlkD+/.net
>>929
JavaScript
URLリンク(paiza.io)
938:デフォルトの名無しさん
26/06/26 21:50:43.49 Sysm/pIF.net
>>929 ocaml
URLリンク(ideone.com)
・F(N-2),F(N-1)を渡す
>>929 scheme chicken
URLリンク(ideone.com)
・F(N-2),F(N-1)を渡す