プログラミングのお題スレ Part16

■ このスレッドは過去ログ倉庫に格納されています
2019/11/17(日) 09:00:22.10ID:xqEdXdr6
プログラミングのお題スレです。

【出題と回答例】
1 名前:デフォルトの名無しさん
  お題:お題本文

2 名前:デフォルトの名無しさん
  >>1 使用言語
  回答本文
  結果がある場合はそれも

【ソースコードが長くなったら】 (オンラインでコードを実行できる)
https://ideone.com/
http://codepad.org/
http://compileonline.com/
http://rextester.com/runcode
https://runnable.com/
https://code.hackerearth.com/
http://melpon.org/wandbox
https://paiza.io/

宿題は宿題スレがあるのでそちらへ。

※前スレ
プログラミングのお題スレ Part15
http://mevius.5ch.net/test/read.cgi/tech/1564310397/
620デフォルトの名無しさん
垢版 |
2020/01/13(月) 14:02:08.92ID:7B3b+WrT
>>607
Java
https://paiza.io/projects/qWcc4EhNNSHq8Jono0wgNg

回答は一応用意してました
みんなUnionFind大好きだと思ったんだけど
2020/01/13(月) 18:55:55.99ID:7n+Qr/32
>>566
>>569
8087は、第3の実数フォーマット、一時実数を許している点でユニークである。
このフォーマットは、(符号が1ビット)、指数が15ビットで、有効数字が64ビットである。
このフォーマットで格納されている数値は、拡張精度数と言われている。
単精度および倍精度実数と異なり、一時実数は入力および出力値を表わすことを意図していない。
・・・・(中略)・・・・・
それでは、何故80ビットではなく4倍精度すなわち128ビットを一時実数に使わなかったのか。
1つの理由は、4倍精度は少なくとも性能(速度)が半分になることである。
他の理由は、4倍精度を基本フォーマットとして用いると、中間結果のためにより長いフォーマットが必要となることである。
(後略)

・出典
J.F.パーマー・S.P.モース(著)「8087入門」啓学出版 (1985/Feb) 御牧 義 (訳) 2900円
  第2章 データフォーマット、p.19-20
2020/01/13(月) 19:02:27.52ID:7n+Qr/32
John F. Palmer, Ph.D. は8087の設計者、
Stephen P. Morse, Ph.D. は8086の設計者だそうな。
2020/01/13(月) 19:38:23.04ID:cBNIohlK
x87で遊んでた頃は
将来は4倍精度とか8倍精度とかが当たり前になると思ってたけど
まさか単精度や半精度の時代になるとは
2020/01/14(火) 21:06:38.50ID:vjAz2zAO
>>581
AVX2 & FMA で作ってみました
https://ideone.com/j44H0T

範囲チェックはしてません
2020/01/14(火) 21:13:25.69ID:vjAz2zAO
20命令で4個のdoubleのexpm1の計算が出来ます

8パラにしてレイテンシを隠蔽すれば
1個あたり2.5クロックくらい
2020/01/15(水) 12:05:09.83ID:z1LU+PP1
将来、行列演算もFPU化されると、逆行列の桁落ちが問題になるだろうな・・・・
それを見越して、入出力は64bitのまま内部演算だけ80bitにしたんぢゃね?
2020/01/15(水) 13:12:03.91ID:BnAK3ul/
思想がどんなに優れてても使われなきゃしょうがない

レジスタが8個しか無いから内部だけ80bitでもほとんど精度改善にならないし
メモリに80bit保存するのも使いにくい

互換性の問題もあって
コンパイラや最適化で値がかわってしまうのも都合が悪い
だから演算にx87命令を使ったとしても内部64bit精度がデフォ

x87全盛期に作られたSuperPIも64bit精度の演算を使ってる
80bit精度で計算すれば速度アップ出来るにも関わらず
628デフォルトの名無しさん
垢版 |
2020/01/15(水) 17:38:16.89ID:xp2qVCg5
>>589 Ruby
require 'prime'
a=Prime.take(100)
p ([0]+Prime.take(a.last)).values_at(*a)
2020/01/15(水) 21:04:20.76ID:/kpg6gtq
お題:
9つの物がある。
重さが20以下で価値の合計が最大になる組み合わせを求めなさい。
(Part7から再出)

[重さ, 価値]

[
[3, 5],
[5, 6],
[6, 3],
[3, 5],
[5, 9],
[2, 1],
[7, 5],
[4, 6],
[8, 3],
]
2020/01/15(水) 21:18:06.99ID:1ZW9vAE3
ナップサック問題か
2020/01/15(水) 21:27:46.82ID:woCrNz65
重さ < 価値
となる物を集めると丁度重さが20だから
これが解
632デフォルトの名無しさん
垢版 |
2020/01/16(木) 21:02:25.92ID:ZS18thyn
【お題】以下の31個の数の下6桁を求めよ。

20200101の1, 2, 3, ..., 20200101乗の総和
20200102の1, 2, 3, ..., 20200102乗の総和
20200103の1, 2, 3, ..., 20200103乗の総和
 :
20200131の1, 2, 3, ..., 20200131乗の総和
2020/01/17(金) 06:54:23.06ID:bFwt3c1k
>>626
逆行列の計算は避けた方がいいってえらいひとがゆってた
ttps://www.kyoritsu-pub.co.jp/bookdetail/9784320013438
634デフォルトの名無しさん
垢版 |
2020/01/17(金) 12:14:19.25ID:onsz9c/m
>>629
16, 7: 0 0 1 0 0 1 0 0 1
17, 9: 0 0 0 0 0 1 1 0 1
18, 26: 1 1 0 1 1 1 0 0 0
19, 27: 1 1 0 0 1 1 0 1 0
20, 31: 1 1 0 1 1 0 0 1 0
2020/01/17(金) 18:26:22.50ID:KcAYJrW8
>>632
C++
https://ideone.com/A0BeSs
636デフォルトの名無しさん
垢版 |
2020/01/17(金) 20:33:32.20ID:VgNyCBhj
>>635
正解。

Rによる2種類の解答例
(1) https://ideone.com/7B7IhY
(2) https://ideone.com/Y8jx8o

(1)は等比数列の総和の公式を利用しているので分かりやすいが、途中計算の最大値が
(20200130 * 1000000 - 1) ^ 2 ≒ 2 ^ 88.4 になるかも知れず、64ビット整数の
範囲に収まらないため、Cでは手軽に書けない。Rでは多倍長整数パッケージgmpを
使って書ける。

(2)は部分和をちまちま足していく方式で、途中計算の最大値が (1000000 - 1) ^ 2
≒ 2 ^ 39.9 で済むため、Cでも64ビット整数で計算できる。Rでも多倍長計算が必要な
(1)より速い (正味の実行時間が(1)は0.016秒、(2)は0.004秒)。
2020/01/17(金) 21:12:46.79ID:KcAYJrW8
お題

f(n) = n^1 + n^2 + ... + n^n の時
f^20200117 (20200117) の下9桁を求めよ

※ f^n (x) = f(f(f(....f(x)))...) 【fがn個】
638デフォルトの名無しさん
垢版 |
2020/01/18(土) 00:45:25.84ID:meR2Lc88
>>629
Java
https://paiza.io/projects/Qbx2Q0ZIlXetvF51BwoF_w
639デフォルトの名無しさん
垢版 |
2020/01/18(土) 05:21:08.23ID:et7QELfi
>>589 octave

a=primes(5000);
a(a(1:100))
640デフォルトの名無しさん
垢版 |
2020/01/18(土) 22:25:47.12ID:uIn7pF9I
>>637
https://ideone.com/WvoPeq

Rでは時間が掛かりすぎるのでコンパイラ言語を使うが、C/C++だと出題者と同じで
つまらないから、Fortranで書いてみた。nが奇数の場合にしか求められないし、
合っているかどうか分からない。
2020/01/18(土) 23:02:35.37ID:/9q/+LXn
>>640
正解

C++
https://ideone.com/09pUlf

312500はどうやって求めました?
2020/01/18(土) 23:12:37.20ID:/9q/+LXn
>>641だと偶数でもOKです
643デフォルトの名無しさん
垢版 |
2020/01/18(土) 23:31:05.83ID:uIn7pF9I
>>641
時間は掛かるがRで下9桁の値を順々にいくつか求めて配列rに記録してから、
プロンプトで any(duplicated(r)) や which(duplicated(r)) と入力して
周期性を見つけただけ。理論的な根拠はない。
2020/01/18(土) 23:34:38.18ID:/9q/+LXn
thx

周期が既知なら
mod(20200117, 312500) 回だけで済むのでは?
645デフォルトの名無しさん
垢版 |
2020/01/18(土) 23:45:49.85ID:uIn7pF9I
>>644
まあそうだが、それではあまりにもマジックナンバーすぎるので、周期が本当に
312500であるかチェックするコードを31行目に念のため入れた。周期性が
確認できなければ、STOP Errorと表示してプログラムを中断する。
2020/01/19(日) 00:38:02.65ID:msO9WicL
【お題】

無向グラフGが入力として与えられ、Gがサイクルを持てば、
Gの中の最小サイクルの経路とそのコストを出力するプログラムをかけ

*条件
・グラフサイズ(頂点数)は10頂点程度(任意でよい)
・各辺の重みはランダムとする
・入力は隣接行列表現とする
2020/01/19(日) 08:33:00.83ID:r8dbXOf2
お題: 文字列aの真ん中に文字列bを挿入する関数chopを定義しなさい
2020/01/19(日) 08:40:19.34ID:dOSa/ZjO
>>647 Ruby

def chop(str); str.tap{|s| s[s.size / 2, 0] = ?b}; end

puts chop('hogefuga') # => hogebfuga
2020/01/19(日) 08:42:44.39ID:dOSa/ZjO
問題誤読してた

def chop(a, b)
  a.tap{|s| s[s.size / 2, 0] = b}
end

puts chop('hogehoge', 'HOGE') # => hogeHOGEhoge
2020/01/19(日) 10:33:55.37ID:9NcxNk8h
お題 (>>346)
1〜1000 の整数の内、3の倍数または5の倍数であるものだけを選んで、その合計を求めよ。
2020/01/19(日) 10:37:40.30ID:9NcxNk8h
3の倍数
 [1000/3] = 333個
 S(3) = 3+6+9+・・・・+999 = 333 * (3+999)/2 = 166833,

5の倍数
 [1000/5] = 200個
 S(5) = 5+10+15+・・・・+1000 = 200 * (5+1000)/2 = 100500,

3の倍数かつ5の倍数 (15の倍数)
 [1000/15] = 66個
 S(15) = 15+30+45+・・・・+990 = 66 * (15+990)/2 = 33165,

∴ S(3) + S(5) - S(15) = 100500 + 166833 - 33165 = 234168.
2020/01/19(日) 13:04:07.51ID:CR4NZ4aH
15の倍数含めないんじゃないの?
https://paiza.io/projects/EeMOFbswluii2y-uytbeqA
2020/01/19(日) 18:23:22.44ID:t01ujcAX
>>629 Perl5
use List::Util qw{max};
$W = 20;
$n = @wv = ([3, 5],[5, 6],[6, 3],[3, 5],[5, 9],[2, 1],[7, 5],[4, 6],[8, 3]);
@w = map{$$_[0]} @wv;
@v = map{$$_[1]} @wv;
$wt[$n][$_] = 0 for 0..$W;
for ($i = $n - 1; $i >= 0; $i--) {
 for $j (0..$W) {
  $ws = $wt[$i + 1][$j];
  $ws = max($wt[$i + 1][$j - $w[$i]] + $v[$i], $ws) if $j >= $w[$i];
  $wt[$i][$j] = $ws;
 }
}
print "価値合計最大: $wt[0][$W]\n";
$j = $W;
for $i (0..$n-1) {
 $ws = $wt[$i][$j];
 if ($wt[$i + 1][$j] != $ws) {
  print "[$w[$i], $v[$i]] ";
  $ws -= $v[$i];
  for (; 0 <= $j; $j--) { last if $wt[$i + 1][$j] == $ws; }
 }
}

$ perl 16_629_nsp_dp.pl
価値合計最大: 31
[3, 5]
[5, 6]
[3, 5]
[5, 9]
[4, 6]
654デフォルトの名無しさん
垢版 |
2020/01/19(日) 20:22:32.64ID:MJwntUeD
>>652
PowerShellには論理XOR演算子があるので簡潔に書けるな。

(1..1000 |? {$_ % 3 -xor $_ % 5} | measure -sum).sum

-- 実行結果 --
201003
2020/01/19(日) 21:28:24.55ID:RfLx+x9F
>>652
なぜそう思った?
2020/01/19(日) 21:32:35.60ID:CR4NZ4aH
>>655
だけ と強調してたから15を含めない意図があったのかと思った
2020/01/19(日) 21:35:30.71ID:RrNuywTU
「3の倍数または5の倍数であるものだけ」という文言をそう理解するのは宇宙でお前だけだと思う
2020/01/19(日) 22:24:05.06ID:RfLx+x9F
妊娠してるか体が不自由な人だけ使ってください
2020/01/19(日) 23:13:47.04ID:xkwic4JQ
>>658
妊娠してる障害者はすわれないやんけ!
660デフォルトの名無しさん
垢版 |
2020/01/20(月) 07:26:08.24ID:MadDRkAO
日本語の選択が排他的かどうかは状況しだいだから難しいところだと思うけどね
レストランで「コーヒーか紅茶が付きます」と言えばどちらか一方でしょ
ケースバイケース

こう解釈したらこういうプログラムになるというふうに思考を広げることはできるっしょ
2020/01/20(月) 08:18:28.86ID:ItoFGwWk
それは選ぶ条件ではなく、選ぶ個数の問題

>>346は全て選ぶのが暗黙の了解
>>660は選ぶのが1個であるのが暗黙の了解

>>346も全てとは書いてないから
1個選ぶのか、任意の個数選ぶのか、全ての選び方の場合を求めるのか、などが考えられるのかも
誤解の可能性があるなら「全て選ぶ」と書かないとね
2020/01/20(月) 10:07:25.78ID:DzK/Jy6Q
0個選んで答えは0
コンピュータ言語読み書きしてたらこういう
発想が自然に感じられるが
日常言語の世界ではナンセンス杉
2020/01/20(月) 14:10:00.56ID:gT/yNp+O
>651 のようにした
common lisp
(loop for i from 1 to 1000 when (= (* (mod i 3) (mod i 5)) 0) sum i)
234168
2020/01/20(月) 15:41:16.18ID:/G9h8LiI
>>651 Ruby
def si(n,m); n.step(m,n).inject(:+); end

p n3 = si( 3, 1000 ) #=> 166833
p n5 = si( 5, 1000 ) #=> 100500
p n15 = si( 15, 1000 ) #=> 33165
p n3 + n5 - 2 * n15 #=> 201003
665デフォルトの名無しさん
垢版 |
2020/01/20(月) 21:46:25.06ID:eV9B9Eib
>>629
Rで全探索
https://ideone.com/XDwD7C

物が9個しかないので512通りの組み合わせを全探索してもすぐ終わるし、
上のプログラムの2番目の問題のように、合計価値が最大となる組み合わせが
複数ある場合でもすべて挙げられるし、重さが小数や大きな整数の場合でも
同様に解けるから、全探索が時間的に可能なら全探索の方が良いんじゃないか?
2020/01/20(月) 22:42:22.14ID:vyZs8dgX
>>665
問題の条件によって適した解法が変わる。
たとえば個数が高々十数個程度であっても、
個々の重さや価値の範囲が広く、詰め込める荷物のキャパが大きいとか、
整数でない場合は、動的計画法だと解けないが、ナイーブな解法なら解ける。
逆に個数が大きくて、個々の重さや価値、キャパがそれほど大きくない整数だと、
ナイーブな解法では時間がかかりすぎて解けないが、
動的計画法だと短時間で解ける。
条件によって適した解法を選択する。
>>653 は動的計画法の復習と最適解に至る経路を逆にたどる復習のつもりで書いのよん。
2020/01/20(月) 23:01:52.63ID:kEPXORSp
問題に適した解法なら>>631が最強
2020/01/20(月) 23:10:30.44ID:vyZs8dgX
(´・ω・`)「・・・・・」
669デフォルトの名無しさん
垢版 |
2020/01/21(火) 14:48:52.44ID:/dftakVp
>>650
Kotlin script

KotlinもBooleanのxor使えたよ。こういう場合は優先順位の問題で括弧が必要になるけどね。

println((1..1000).filter { (it % 3 == 0) xor (it % 5 == 0) }.sum())
2020/01/21(火) 16:44:59.42ID:TMO7rdDn
!=でいんじゃ、、、
2020/01/21(火) 21:56:37.25ID:q8k+mYw1
["A -> B" , "A -> D", "B -> E", "D -> E"]


A
B
E
D
E

このようにツリー状に表現する際に計算量が少ない書き出し方ってどうなりますか。言語問いません。
2020/01/21(火) 21:57:01.85ID:q8k+mYw1
スペースきえた…
2020/01/21(火) 21:58:36.68ID:5H3OckH4
D -> B のようなループできるかもね
674デフォルトの名無しさん
垢版 |
2020/01/22(水) 03:28:09.12ID:HNO/xGn/
>>670
それを言っちゃあおしめえよ
2020/01/22(水) 10:29:09.24ID:Oj6zQLXh
>>671
データ構造がツリーじゃないのにツリー形式で表示するのは効率悪くない?

同じデータを何度も表示しちゃう
676デフォルトの名無しさん
垢版 |
2020/01/22(水) 11:00:25.26ID:8VKZzbv1
>>671
dot
2020/01/22(水) 19:16:47.36ID:0ayd3B3Q
お題

>>671 において
入力文字列が20個以内で出力の行数が最大となる
入力文字列(を1個)を求めよ
2020/01/22(水) 19:50:15.23ID:k+w34kNu
["A -> B" , "B -> A]
これで循環参照のチェックいれるコードがない再帰っぽい感じなら無限に出力だ
2020/01/22(水) 19:55:17.74ID:F1N+c+gr
閉路と多重辺は無しで
辺の無い点も表現出来ないので無し
680デフォルトの名無しさん
垢版 |
2020/01/22(水) 20:19:19.31ID:3jquT0bn
>>677
20個ならループしない限りは内容が何だろうが20行にしかならないのでは?
2020/01/22(水) 20:23:02.50ID:1i745hKi
最大は21行だよ
682デフォルトの名無しさん
垢版 |
2020/01/22(水) 20:40:06.51ID:3jquT0bn
あー。そうか。21だね。
2020/01/22(水) 20:43:02.80ID:F1N+c+gr
>>671に "E -> C" を加えると?
684デフォルトの名無しさん
垢版 |
2020/01/22(水) 21:13:37.75ID:pXdYyKNl
>>671
Java
https://paiza.io/projects/zVLPWkZWdFIgv8aDQjIn0Q
685デフォルトの名無しさん
垢版 |
2020/01/23(木) 01:12:44.95ID:LqZxq9h8
>>683
分岐か。そうすれば増えるね。
2020/01/23(木) 18:13:14.12ID:AdSJ3UeH
[] 0行
["A -> B"] 2行
["A -> C", "B -> C"] 4行
["A -> D", "B -> D", "C -> D"] 6行
["A -> D", "B -> D", "C -> D", "D -> E"] 9行
2020/01/23(木) 18:45:00.25ID:AdSJ3UeH
n≧12 の時、以下を四捨五入した行数になるかな

偶数
4 * exp(n*0.24060591252980172375)

奇数
4.0137530980362538594 * exp(n*0.24060591252980172375)
2020/01/24(金) 23:55:14.11ID:qxZ+oily
>>671 Perl5 (goto 関数を使っていますが、perl5ではこれはcontinuationです)

use feature qw{current_sub signatures};
no warnings 'experimental::signatures';
@sx = (A => B, A => D, B => E, D => E);
sub {
 if (@_) {
  ($a, $b) = (shift, shift);
  push @lx, $a unless $h{$a};
  push @{$h{$a}}, $b;
  $r{$b}{$a} = 1;
  goto __SUB__;
 }
}->(@sx);
@ax = grep{! $r{$_}} @lx;
sub ($a, $d) {
 print "$d$a\n";
 __SUB__->($b, "_$d") while $b = shift @{$h{$a}};
}->($_, '') for @ax;

実行結果
$ perl 16_671.pl
A
_B
__E
_D
__E
2020/01/25(土) 02:34:16.23ID:XZtTnZKV
>>646
サンプルデータも考えて、回答も作れと言われると
めんどくさすぎてスルーされるんじゃまいか
2020/01/25(土) 02:36:37.70ID:XZtTnZKV
つか、無向グラフの最小サイクル検出って
いいアルゴリズムあったっけ
2020/01/25(土) 06:09:52.81ID:Fgzm1LAC
最小サイクルとは?
コストが最小?通る辺の数が最小?

コストとは?
通る辺の重みの和?
点のコストはゼロ?

出題者しかわからない前提が色々とあるお題
2020/01/25(土) 06:22:55.26ID:Fgzm1LAC
>>688
gotoを使っちゃいけないローカルルールとかあるの?
693デフォルトの名無しさん
垢版 |
2020/01/25(土) 08:11:44.03ID:O6wUvbi6
tsort(1) ?
2020/01/25(土) 10:35:48.88ID:ZrgQFiPc
>>692
そんなルールはないけれど、制御構造の構文の代わりに安直に
goto分岐を使ったヘッポココードではなくて、perl5のgoto 関数名構文が持つ
continuationの機能を使って、動的環境を維持したまま末尾再帰的な
loopを表現したと言いたかったのよ
2020/01/25(土) 10:38:39.91ID:icKJvqvk
なるほど
お前はなかなかやるじゃねえか
2020/01/25(土) 11:05:32.17ID:mLh1vP4R
お題

.bash_history には、入力したコマンドが、1行ずつ追記されていくが、
同じコマンドが出てくると面倒なので、古い(上にある)方をすべて消してください

入力
5
3
1
4
2
5
3
4
5

出力
1
2
3
4
5
2020/01/25(土) 11:14:27.65ID:wxh/zNmo
>>696 Ruby

puts gets(p).split.reverse.uniq.reverse

# =>
1
2
3
4
5
698デフォルトの名無しさん
垢版 |
2020/01/25(土) 12:48:36.66ID:dgvYVRBF
>>696
Java
https://paiza.io/projects/UZnyFQFRa_Pad3yFKG-e9w
2020/01/25(土) 13:56:27.24ID:yjSryLut
>>696 Perl5

$h{$_} = $. while <>;
print for sort{$h{$a} <=> $h{$b}} keys %h;

実行結果
~ $ cat .bash_history
5
3
1
4
2
5
3
4
5
~ $ perl 16_696.pl .bash_history
1
2
3
4
5
700デフォルトの名無しさん
垢版 |
2020/01/25(土) 18:59:55.00ID:xXb4DuHd
>>696
https://ideone.com/PtMPWn
RのuniqueにはfromLastオプションがあるので、revによる前後処理が不要。
701デフォルトの名無しさん
垢版 |
2020/01/25(土) 19:19:17.51ID:i4ScOGkF
>>696 Ruby

a=STDIN.readlines
puts a.select.with_index{|v,i| i==a.rindex(v)}.join
2020/01/25(土) 19:26:44.09ID:eYyvJiZZ
>>696 .bashrc
HISTCONTROL=erasedups:ignorespace
ついでに
HISTIGNORE="history*"
703デフォルトの名無しさん
垢版 |
2020/01/25(土) 20:22:19.72ID:J6xo1Vbp
>>696 Emacs Lisp
(with-temp-buffer-window #1="*odai-pt16-696*" nil nil
  (switch-to-buffer #1#)
  (insert-file-contents "~/.bash_history")
  (delete-duplicate-lines (point-min) (point-max) t))
2020/01/26(日) 00:01:21.24ID:4S7WZkam
>>701 ナイス
2020/01/26(日) 00:02:23.79ID:4S7WZkam
>>704 アンカーしくった
>>702 ナイスはこっちだた
706696
垢版 |
2020/01/26(日) 00:35:54.22ID:2jcz6vHU
>>702
スレ違いで、スマンが、

erasedups で、現在の行と一致する履歴を、保存前にすべて削除するけど、
WSL, Ubuntu 18.04, bash では、削除されなかった!

これは難しい

tmuxとかの仮想端末で複数の画面間で、Bashのコマンド履歴を共有すると、
同じ履歴が何度も記録されてしまう問題を解決する
https://piro.sa@kura.ne.jp/latest/blosxom/webtech/2018-03-04_history-nodup-with-tmux.htm
2020/01/26(日) 01:20:33.64ID:4S7WZkam
>>706
モチツケ
708696
垢版 |
2020/01/26(日) 01:39:31.40ID:2jcz6vHU
history の仕組みが難しいから、

定期的に、ここのスクリプトで、履歴ファイルを上書きした方が良いかも
2020/01/26(日) 01:43:44.81ID:HPdacZve
rubyXLでエクセルいじってるが

印刷範囲を設定したいときは、どのようにすればよいのでしょうか?
いろいろ探しても見当たらず・・
2020/01/26(日) 02:08:32.67ID:4S7WZkam
>>709
スレチ

>>708
bashから.bash_profileの重複をなくすプログラムを実行しても
logoutするときにbashが記憶しているコマンド履歴を.bash_profileに
上書きしちゃって、元の木阿弥になるんジャマイカ
711696
垢版 |
2020/01/26(日) 05:19:41.93ID:2jcz6vHU
>>710

>>706
のサイトに書いてあるけど、

.bash_history から重複を排除して、上書きする

次に、history -c && history -r

-c で、メモリ上のコマンド履歴を削除して、
-r で、履歴ファイルからメモリへ、コマンド履歴を読み込む

まだ、試してないけど
712696
垢版 |
2020/01/26(日) 06:05:44.52ID:2jcz6vHU
>>696
Ruby で作った。
コマンドは「ruby script.rb 入力ファイル名」

# ARGF とは、複数のファイルや標準入力を連結して、1つにした仮想ファイル
ary = ARGF.readlines # 1行ずつ配列に入れる

# ! が付く破壊的メソッドは、メソッドチェーンしない!
ary.reverse!
ary.uniq! # 連続していないものも削除する
ary.reverse! # 元に戻す

print ary.join
713696
垢版 |
2020/01/26(日) 06:21:48.26ID:2jcz6vHU
>>711
の方法で、.bash_history から重複を排除できました!
2020/01/26(日) 09:38:26.36ID:6CyPsFJq
お題: 入力された整数を因数分解し、因数の数だけ「どんだけぇ〜♪」と表示せよ

in < 24
因数分解: 2 2 2 3
out > どんだけぇ〜♪
どんだけぇ〜♪
どんだけぇ〜♪
どんだけぇ〜♪
2020/01/26(日) 10:24:47.39ID:mBsLdcGX
>>709

121 名前:デフォルトの名無しさん (ワッチョイ a763-gk0v)[] 投稿日:2020/01/25(土) 15:52:45.46 ID:WZ3Oswhu0
rubyXLでエクセルいじってるが

印刷範囲を設定したいときは、どのようにすればよいのでしょうか?
いろいろ探しても見当たらず・・
2020/01/26(日) 10:35:06.75ID:OyPCa8uu
>>714 Ruby

puts "どんだけぇ〜♪\n"*~-`factor`.split.size
717デフォルトの名無しさん
垢版 |
2020/01/26(日) 11:45:57.12ID:pipfilQo
>>714
Java
https://paiza.io/projects/xxDf_vUHslqz8TQt3YzIgg
2020/01/26(日) 15:31:19.81ID:QR2U0M8L
お題: どこかの国に競馬があった。そこの競馬場のルールでは馬券一枚に対して単勝の馬一頭しか選べない。
その日の各ゲームのそれぞれの出場馬について、名前と勝率とオッズが掲示されている。

【今日の競馬】
ゲーム1:
馬A, 0.5, 2.0
馬B, 0.8, 1.2
馬C, 0.9, 0.2
ゲーム2:
馬D, 0.3, 4.0
馬E, 0.5, 3.0
馬F, 0.8, 1.4

予算50,000円で獲得期待金額が最大になるように馬券を購入せよ。馬券の購入において、小数点以下は切り捨てとし、馬券には税金が掛からないものと仮定する。
2020/01/26(日) 15:44:50.09ID:uQg9mh+n
勝率の和が1を越えてるけど勝率って言うのは勝つ確率のことではなくて何かしらの競馬用語なのか?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況